根据选择框中的选择显示文本

时间:2012-05-24 13:38:33

标签: php javascript jquery

如何运行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 个答案:

答案 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进程。