如何在if语句中实现jQuery .post

时间:2014-09-17 08:09:34

标签: javascript php jquery radio

我目前正试图让用户点击一个单选按钮,然后自动更新我们数据库中的状态;但是我对.post函数有点问题。

<script>
$(function(){
  $('input[type="radio"]').click(function(){
   if ($(this).is(':checked'))
   {
    var value = ($(this).val());

    alert(value);
   }
  });
});  
</script>

这是执行它必须做的事情的代码,并且正确的值被传递给变量。

但是,将其修改为:

<script>
$(function(){
 $('input[type="radio"]').click(function(){
  if ($(this).is(':checked'))
  {
   var value = ($(this).val());

   $.post('/choices.php',  
   { 
    choice: value,
    auction_id: '<?php echo $sale['Product']['id']; ?>',
    token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>' 
   }

   alert(value);
   }
 });
});  
</script>

值未传递到PHP文件,并且警报不再起作用;所以我怀疑我没有正确实现$ .post功能。如果是这样,使用jQuery的.post函数的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

您应该为post方法添加回调方法。它看起来像:

$.post('/choices.php', {
        choice: value,
        auction_id: "<?php echo $sale['Product ']['id ']; ?>",
        token: "<?php echo md5(session_id().$session->read('Auth.User.id ')); ?>"
    },
    function(data) {
        value = data;
    });

此外,您应该正确格式化Php代码(引号),就像我上面所做的那样。

答案 1 :(得分:0)

<script>
$(function(){
 $('input[type="radio"]').click(function(){
  if ($(this).is(':checked'))
  {
   var value = ($(this).val());

   $.post('/choices.php',  
   { 
    choice: value,
    auction_id: '<?php echo $sale['Product']['id']; ?>',
    token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>' 
   }); // append ")" here

   alert(value);
   }
 });
});  
</script>

然后这个ajax调用完成,没有等待alert(value);语句

或者你可以在ajax调用时运行alert(value);

completed:

<script>
$(function(){
 $('input[type="radio"]').click(function(){
  if ($(this).is(':checked'))
  {
   var value = ($(this).val());

   $.post('/choices.php',  
   { 
    choice: value,
    auction_id: '<?php echo $sale['Product']['id']; ?>',
    token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>' 
   }, function(data){
    alert(value);
   });   
   }
 });
});  
</script>