jQuery变量到php变量然后在查询时使用它

时间:2011-08-09 02:49:09

标签: php jquery

我有一个问题,当涉及从jQuery检索值到php.i能够获取我的选择的值并将其传递给我的PHP,但我无法将其传递回PHP。这是代码......

 <script>
  $(document).ready(function()
  {
       $("select#months").change(function(event)
       {
         var m=$(this).val();
          $.ajax({
               type: 'POST',
           url: "monthly_CRD.php",
           data: {m: m},
               success: function(){alert("updated")}
    });
       });
  });
</script>   


<div>
<select id="months">
  <option value='00'>Month...</option>
      <option value='01'>Jan</option>
      <option value='02'>Feb</option>
      <option value='03'>Mar</option>
      <option value='04'>Apr</option>
    </select>
    <select id="years">
    <?php
     for($yr=10; $yr<=$year; $yr++)
{
    echo "<option value='".$yr."'>".$years[$yr]."</option>";
}
?>
   </select>
</div>
<?php
 if (isset($_POST['m'])) 
 {
        $m = $_POST['m'];
        echo $m;
 } else   {echo "fail";} 

?>

它继续返回失败,这意味着isset无效。

4 个答案:

答案 0 :(得分:1)

data: {m: m}更改为data: {"m":m}

由于您正在查看$_POST['m'],因此需要在JSON中定义该密钥。目前,如果您选择$_POST['03']

,则需要查看Mar

答案 1 :(得分:0)

如果你有一个元素的id,那么只需id即可。试试这个

$(document).ready(function()
  {
       $("#months").change(function(event)
       {
          $.ajax({
           type: 'post',
           url: "monthly_CRD.php",
           data: { m: $(this).val()},
           success: function(){
              alert("updated")
           }
          });
      });
  });

答案 2 :(得分:0)

如果你的意思是在页面加载时,它会返回fail,这是因为在页面加载时你的$_POST数组可能是空的。

如果您想知道从AJAX帖子返回的内容,您需要success函数接受jQuery将填充对您帖子的响应的参数(如data)。 然后在函数体中,您可以将其写入DOM或错误控制台。

答案 3 :(得分:0)

$(document).ready(function()
  {
   $("#months").change(function(event)
   {
      $.ajax({
       type: 'post',
       url: "monthly_CRD.php",
       data: '{ "m": "' + $(this).val() + '"}',
       success: function(msg){
          alert(msg)
       },
       error: function(msg) {
          alert("An error happened: " +msg);
       }
      });
  });

});

Chrome工具的用户提琴手可以破解成功或错误,并检查meesage属性的值。