0

イベントで、ajaxを介してテキストボックスの値を計算しようとしていますonkeyup:

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;
}

しかし、結果は表示されません。ここで何が欠けているのか教えてください。

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 に答える