0

我需要根据下拉列表的值进行mysql查询。这里我使用 ajax 将下拉值发送到服务器。我认为这部分对我有用。但问题是我无法将它传递给 php。注意:两者都在同一页面中。

这是我的 Jquery 代码:

$('#filter-value').change(function(){
    var filterValue = $(this).val();
    //console.log(filterValue); 

    $.ajax({
        type: 'post',
        dataType: 'html',
        data: {filter: filterValue},
        success:function(data){ 
            alert(data); 
        }, 
        error:function (xhr, ajaxOptions, thrownError){
            //On error, we alert user
            alert(thrownError);
        }, 
        complete: function(){
            //alert('update success'); 
        }
    });
});

这是 HTML 表单

    <form method="post" action="">
        <select id="filter-value" name="filter">
            <option value="10">10</option>
            <option value="20">20</option>
            <option value="30">30</option>              
        </select>
    </form>

这是我在页面顶部尝试的 PHP 代码:

if (isset($_POST['filter'])) {
    $filter = $_POST['filter']; 
    echo $filter; 
    exit;
} else {
    echo 'bad';
}

但是这个 php 代码总是会分开并打印'bad'

谁能告诉我哪里出错了?

谢谢你。

4

2 回答 2

0

您错过了指定脚本的 URL。确保您从 AJAX 查询正确的文件。

$.ajax({
    type: 'post',
    url: 'yourpage.php', // This one 
    //.....
});
于 2013-06-29T02:09:00.143 回答
0

将您的 php 更改为(并说另存为 xyz.php):

if($_POST) {
if (isset($_POST['filter'])) {
    $filter = $_POST['filter']; 
    echo $filter; 
    exit;
} else {
    echo 'bad';
}
}

和你的ajax调用的url:

$.ajax({
    url: "xyz.php",
    type: 'post',
    dataType: 'html',
    data: {filter: filterValue},
    success:function(data){ 
        alert(data); 
    }, 
于 2013-06-29T02:09:29.443 回答