嘿伙计们,我需要我的 AJAX 结果来向我的表格添加字段,或者添加一个提交按钮来完成表格。
我的 AJAX 结果显示在标准 HTML 表单(来自 PHP 文件)内的 DIV 中。当在 FORM 标记中返回时,AJAX 结果(比如隐藏输入)是否可以包含在 FORM POST 中?
我正在使用标准 JavaScript(改编自发布的“livesearch”)从 AJAXresults.php 获取 AJAX 结果,它工作正常 - 我的 AJAX 结果确实返回 OK,只是我的表单不起作用!javascript是:
function showResult(str)
{
if (str.length<4)
{
document.getElementById("suburbmatch").innerHTML="Type more than 4 letters...";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("suburbmatch").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","AJAXresults.php?suburbtext="+str,true);
xmlhttp.send();
}
myphp.php 包含这样的表单:(注意加载 AJAX 结果的 DIV,在 FORM 标记内)
<form action="myphp.php" method="POST">
<input type="text" name="addressline1">
<input type="text" name="addressline2">
<input type="text" name="suburb" onkeyup="showResult(this.value)">
<div id=suburbmatch></div> // AJAX results display here
</form>
AJAXresults.php 包含一个查询数据库然后将结果作为隐藏输入字段返回的脚本,以及一个提交按钮:
echo ('<input type="hidden" name="suburbID" value="'.$row['ID'].'">');
echo ('<input type="submit" name="submit" value="');
echo ($row['suburb'].' '.$row['state'].' '.$row['zipcode']);
echo ('"><br>');
此代码在 WHILE 循环中,因此与键入到 myphp.php 上的“郊区”文本输入中的文本匹配的“郊区”作为显示郊区/州/邮政编码的按钮加载。当您单击它时,它应该在 myphp.php 上提交整个表单,包括 AJAX 结果中隐藏的 INPUT。
我可以将结果作为文本返回并使用 $_GET 超链接数据,例如:(a href=myphp.php?result=x) 但随后它将刷新页面并重置其他表单值:P