2013-06-29 133 views
0

我需要根据下拉列表的值进行mysql查询。在这里,我使用ajax将下拉值发送到服务器。我认为这部分正在为我工​​作。但问题是我无法得到它。注意:两者都在同一页面中。Ajax响应错误

这是我的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代码总是去其他部分和打印'坏'

有人可以告诉我我要去哪里吗?

谢谢。

+0

添加'回声json_encode($ _ POST)'到else子句。 – Barmar

+0

您的代码检出。告诉我,如果你做了'var_dump($ _ POST),你会得到什么?退出;'在PHP – Starx

+0

@Starx的顶部我试过了,并在页面上显示这个'array(0){}' – TNK

回答

0

您错过了指定脚本的URL。确保你正在查询来自AJAX的正确文件。

$.ajax({ 
    type: 'post', 
    url: 'yourpage.php', // This one 
    //..... 
}); 
0

你的php更改为(说另存为xyz.php):

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

和URL到您的Ajax调用:

$.ajax({ 
    url: "xyz.php", 
    type: 'post', 
    dataType: 'html', 
    data: {filter: filterValue}, 
    success:function(data){ 
     alert(data); 
    }, 
+0

现在它不会去其他部分。但不回显$ filter也 – TNK

+0

你需要发布到这个PHP脚本通过你的AJAX调用文件 – raj

+0

RAJ请告诉我你是什么意思在上面的评论 – TNK