0

如何运行 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 的地方再次运行,等等?

4

4 回答 4

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
            }
        });
    }
});

我给 select 一个 id 并修改了数据行(并添加了一些语法更正)。

于 2012-05-24T19:15:35.323 回答
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 视图中填充数据

于 2012-05-24T13:51:54.973 回答
0

如果您每次在下拉列表中更改值时都重新加载页面,那么您可以在 SELECT 标记中使用 onchange 属性。

更改值时重新加载页面并在 URL 中设置 GET 变量。如果此 GET 变量为 NULL,则不处理 PHP 代码……否则相应处理。

于 2012-05-24T14:05:10.157 回答
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);
         }
      });

    }

});
于 2012-05-24T13:50:16.347 回答