【发布时间】:2011-01-07 06:19:22
【问题描述】:
这是我的简单 HTML 表单和 JS:
<body>
<form>
<label for="usrtext">Enter text here:</label>
<br />
<textarea name="usrtext" id="usrtext" rows="25" cols="100"></textarea>
<br />
<button id="btn" type="button">Send</button>
</form>
<script type="text/javascript">
document.getElementById('btn').onclick = request;
function request()
{
var xhr = new XMLHttpRequest();
var usrtext = document.getElementById("usrtext").value;
xhr.open("GET", "sampleb.php?usrtext="+usrtext, true);
xhr.onreadystatechange = function(aEvt)
{
if (xhr.readyState == 4)
{
if (xhr.status == 200)
{
var temptxt = document.body.innerHTML;
document.body.innerHTML = temptxt + xhr.responseText;
}
}
}
xhr.send('');
}
</script>
</body>
这是 php 页面 (sampleb.php):
<?php
if (isset($_REQUEST["usrtext"]))
{
$output = $_REQUEST["usrtext"];
}
echo $output;
?>
我遇到的问题是,当您在文本框中输入文本并提交时,php 页面会获取文本并将其发送回去。但这只适用于第一次。如果我在文本框中输入新文本并单击提交按钮,则 ajax 调用似乎第二次不起作用。
我对此很陌生,但我用 console.log 替换了“请求”,如果我多次单击该按钮,它会在 Firebug 中注册。我还将'request'替换为一个显示警报框的annon函数,该函数可在多次单击按钮时工作......我只是不知道为什么我的'request()'函数没有被第二次调用。
【问题讨论】:
标签: php javascript ajax forms