我正在创建某种表单,该表单应该在选择框后使用ajax填充。我需要你的建议和建议,以便更好地做到这一点;
这是我的脚本;
`[HTML] AND [AJAX]`
<script type="text/javascript">
function showReportWrite(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
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("report_write").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
<div id="report_write"></div>
[PHP]
if($form_name == 'form_report1'){
//action
}
if($form_name == 'form_report2'){
//action
}
if($form_name == 'form_report3'){
//action
}
echo '<div id="accordion">';
echo '<h3><a href="#">Users Details</a></h3>
<div>
<form class="form" name="form_report1">
<fieldset>
<legend>Client Details:</legend>
<table border="0" cellspacing="10">
<tr>
<td><b>Client Name</b></td>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td><b>Date</b></td>
<td><input type="text" name="email" id="email" /> </td>
<td><input type="text" name="email" id="email" /> </td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Candidate Details:</legend>
<table border="0" cellspacing="10">
<tr>
<td><b>Name</b></td>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td><b>Date of Birth</b></td>
<td><input type="text" name="email" id="email" /> </td>
</tr>
<tr>
<td><b>ID or Passport No.</b></td>
<td><input type="text" name="name" id="name" /> </td>
</tr>
<tr>
<td><b>Country</b></td>
<td></td>
</tr>
<tr>
<td><b>Address</b></td>
<td><textarea name="text"></textarea></td>
</tr>
<tr>
<td><b>Contact Details</b></td>
<td><input type="text" name="name" id="name" /> </td>
</tr>
</table>
</fieldset>
<input type="submit" value="Update" id="sendbutton" name="sendbutton"/>
</form>
</div>';
这个想法是这样的,一旦用户选择选择框,ajax 将请求 php 文件,其中根据form_report1
的条件将执行一些操作并回显 html 表单。
我想知道是否有其他方法可以做到这一点,一些 API 可能会增强可能会起作用。我需要你作为专家的建议。因为,我在网络上找不到任何其他选择。谢谢
首先,我会使用 jQuery 或 MooTools 来执行 ajax 调用。他们为此提供了跨浏览器实现,这是您在发布的第一段脚本中大部分尝试做的事情。
这些框架还使事件处理程序变得容易,而我的选择框缺少这些处理程序。
你的PHP似乎也不完整,$form_name
变量显然是凭空出现的。是什么决定了这一点?如何处理通过 ajax 调用发送的GET
参数?此外,你为什么不POST
你的表格,因为表格基本上是存在的
改进,获取jQuery或MooTools(或其他javascript框架,但这是两个使用最广泛的框架),阅读这些,并阅读在PHP中处理ajax调用。网络上确实有很多这样的东西。