0

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

索引.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>

计算.php

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

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

4

2 回答 2

2

尝试更改您的 calc.php,例如:

if (isset($_POST['txtValue']) && !empty($_POST['txtValue'] )) {
  echo $_POST['txtValue'] * 4;
}
于 2013-08-18T11:32:52.923 回答
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 条件

于 2013-08-18T11:16:46.967 回答