JQuery-从select选项获取值以在PHP查询中使用

时间:2013-07-16 19:43:10

标签: php jquery

我想生成一个包含从下拉菜单中选择的值的查询。在没有单击提交按钮的情况下,他将值保存到更改的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
");

3 个答案:

答案 0 :(得分:1)

你最好的办法是看看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 ) );

编辑以显示可能的解决方案

答案 1 :(得分:0)

您必须使用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'];

你需要调整一下以满足你的需求,但它涵盖了基础知识。

答案 2 :(得分:0)

jQuery的.change()

$('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;