PHP:通过Ajax计算文本框值

时间:2013-08-18 11:06:59

标签: php ajax

我正在尝试通过事件onkeyup上的ajax计算文本框值:

的index.php

<html>
<head>
<script type="text/javascript">
function calc() {
if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
  } else {
    xmlhttp = new ActiveXObject('MicrosoftXMLHTTP');
  }
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      document.getElementById('myDiv').innerHTML = xmlhttp.responseText;
    }
  }
  var text = document.getElementById('txtField').value;
  var target = "calc.php";
  var parameter = "txtValue=" + text;

  xmlhttp.open('POST', target, true);
  xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xmlhttp.send(parameter);
}
</script>
</head>
<body>
Price: <input type="text" id="txtField" onkeyup="calc();">
<div id="myDiv"></div>
</body>
</html>

calc.php

if ($_POST['txtValue'] && !empty($_POST['txtValue'] )) {
  echo $_POST['txtValue'] * 4;
}

但不会显示结果。请告诉我,我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

尝试更改calc.php,如:

if (isset($_POST['txtValue']) && !empty($_POST['txtValue'] )) {
  echo $_POST['txtValue'] * 4;
}

答案 1 :(得分:0)

使用以下内容查看您是否收到了正确答案:

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      alert(xmlhttp.responseText);
      document.getElementById('myDiv').innerHTML = xmlhttp.responseText;
    }



好的,你的问题是什么:
使用:

if (($_POST['txtValue'] != '') && !empty($_POST['txtValue'] ))


而不是:

if ($_POST['txtValue'] && !empty($_POST['txtValue'] ))


cuase $ _POST ['txtValue']不是布尔值,不能在if条件中使用