$ .post功能不起作用

时间:2016-09-06 04:17:43

标签: javascript php html ajax

onchange函数可以正常运行,但我遇到$ .post函数无效的问题

这是html

<input type="checkbox" id="chk" value="3" onchange="checkradio(this.value)"/>

这是javascript

var total=0;
function checkradio(serid) {
var num = 0;
$.post( "getserprice.php",{ serid: serid}, function( data ) {
          alert(data);
          num = data;
      })
 if (document.getElementById('chk').checked) {
        total = total + num;
    } else {
        total = total - num;
    }
}

这是PHP

$price = 3;
echo $price;

2 个答案:

答案 0 :(得分:1)

我不确定这是否是问题所在,但num在传递给$.post的成功回调下面的条件中使用时,{@ 1}}将不会被设置为任何内容。您应该将功能更改为:

function checkradio(serid) {

    var num = 0;
    $.post( "getserprice.php",{ serid: serid}, function( data ) {
          alert(data);
          num = data;
          if (document.getElementById('chk').checked) {
              total = total + num;
          } else {
              total = total - num;
          }
      })

}

答案 1 :(得分:0)

$ .post是一个异步函数,即;当它进行调用时,它不会等待成功事件发生并获取数据。相反,如果没有获取数据,它将执行下一个if条件。所以,我们会得到意想不到的结果。

var total=0;
function checkradio(serid) {
var num = 0;
$.post( "getserprice.php",{ serid: serid}, function( data ) {
          alert(data);
          num = data;
          if (document.getElementById('chk').checked) {
             total = total + num;
          } else {
             total = total - num;
          }
}