如何运行PHP查询,该查询仅在从选择下拉列表中选择选项时运行,但每次选择其他选项时都会刷新?
例如,这是HTML:
<html>
<head>
<script type="text/javascript" src="/hr/includes/jui/js/jquery-ui-1.8.20.min.js"</script>
<script>
$(document).ready(function() {
$('#select_box_1').change(function() {
if($(this).val() != '')
$.ajax({
type: 'get',
url: 'balance1.php',
data: 'value' + $(this).val() ,
success: function(data) {
$("#result-div").html(data);
}
});
}
});
});
</script>
</head>
<body>
<form name="form" id="form" method="post" action="validate.php">
<div id="select_box_1">
<select name="drop_down">
<option value="">Please choose</option>
<option value="1">John</option>
<option value="2">Bob</option>
<option value="3">Mike</option>
</select>
</div>
<div id="result-div">
</div>
<input type="submit">
</form>
</body>
</html>
balance1.php
<?php
print "GET Value:".$_GET['value'];
?>
我想在选择框下面运行一个查询,具体取决于所选的值 - 例如,当没有选择任何内容时,就不会运行查询。如果用户从列表中选择John,则查询将在id = 1的位置运行,并显示John的结果。如果用户然后选择Bob,那么查询应该再次运行,其中id = 2,依此类推?
答案 0 :(得分:1)
我建议你使用jquery.ajax,这比你认为的伙伴更强大!下面是使其正常工作的示例代码
$('#select_box_1').change(function() {
if($(this).val() != '')
$.ajax({
type: 'get',
url: 'URL To Your PHP Script',
data: 'value' + $(this).val() ,
success: function(data) {
$("#result-div").html(data);
}
});
}
});
编辑: $_GET['value']
将保存您的php脚本中的值,您可以使用该值查询数据库并将结果或输出返回到ajax调用,然后您只需填充数据在你的HTML视图中
答案 1 :(得分:1)
这是有效的:
[...]
<select name="drop_down" id="sel_something">
[...]
$('#sel_something').change(function() {
if($(this).val() != '') {
$.ajax({
type: 'get',
url: 'someurl',
data: { 'value' : $(this).val() } ,
success: function(data) {
// do your stuff
}
});
}
});
我给选择了id并修改了数据行(并添加了一些语法修正)。
答案 2 :(得分:0)
尝试这样的事情:
$("#select_box_1").change(function(){
if ($(this).val() != "") {
$.ajax({
type: "POST",
url: "foo.php",
data: "id=" + $("#select_box_1").val(),
success: function(msg){
$("#result").text(msg);
}
});
}
});
答案 3 :(得分:0)
如果每次重新加载页面时值都是下拉列表中的更改,那么您可以在SELECT标记中使用onchange属性。
更改值时重新加载页面并在URL中设置GET变量。如果此GET变量为NULL,则不要相应地处理PHP代码... else进程。