JQuery从select选项中获取要在PHP查询中使用的值


JQuery-Get value from select option to use in PHP query

我想生成一个包含从下拉菜单中选择的值的查询。该值将在更改时保存到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'];

你必须稍微调整一下以满足你的需求,但它涵盖了基本内容。

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;