我想生成一个包含从下拉菜单中选择的值的查询。该值将在更改时保存到PHP变量中,而无需单击提交按钮。看了各种各样的文章,我还是不知道该怎么办。我很感激你的帮助。谢谢
下拉菜单
<select name="attribute_select" id="attribute_select">
<option value="select-type">-- Select --</option>
<option value="joint_list">Joint</option>
<option value="collection_list">Collection</option>
<option value="panel_list">Panel</option>
<option value="wood_list">Wood</option>
</select>
PHP
$tablename = value selected from drop down menu
查询
$panel_query = mysqli_query($con,"
SELECT *
FROM $tablename
");
最好看看jQuery。您可以创建一个onchange JavaScript事件,该事件将获取select选项的值,并通过AJAX将其发送到PHP脚本,然后PHP脚本可以运行查询并返回结果。
jQuery
$('select').on('change', function(){
$.ajax({
url: 'your/php/script.php'
type: 'POST',
dataType: 'json',
data: {
'selected' : $(this).val()
},
success: function(data){
// Loop through your results in jQuery and modify your HTML elements
$.each(data, function(key, value) {
// Do something with each row of your results
});
}
});
});
PHP
$tablename = $_POST['selected'];
Run query here...
header('Content-type: application/json');
die( json_encode( $yourQueryResults ) );
编辑以显示可能的解决方案
您必须使用change
事件和AJAX调用将值发送回服务器端:
$("#attribute_select").change(function() {
//get the selected value
var selectedValue = this.value;
//make the ajax call
$.ajax({
url: 'yourPHPfile.php',
type: 'POST',
data: {option : selectedValue},
success: function() {
console.log("Data sent!");
}
});
});
在你的PHP中,用获取值
$tablename = $_POST['option'];
你必须稍微调整一下以满足你的需求,但它涵盖了基本内容。
$('select').on('change', function(){
$.ajax({
url: '/'
type: 'POST',
data: {'selected' : $(this).val()},
success: function(data){
console.log(data); // do something with what is returned
}
});
});
php
<?php
if(isset($_['selected'])):
//create query using variable
endif;