从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
Dynamically generate a string from a form, to pass to PHP file loaded via AJAX
A有一个价格比较网站,侧边栏中有一个用户输入表单。当用户开始使用表单(勾选复选框、单选按钮等)时,我需要根据用户正在检查的选项动态更新页面的主要内容区域(比较表)。目前,我正在使用AJAX将PHP文件的内容加载到内容区域的DIV中。PHP文件只有一个PHP查询,用于从数据库中提取内容,然后输出。这不是MySQL查询,而是对我使用的比价包的PHP调用,只是使用了"+blue+widget min_price=10 max_price=200"等参数。然后MySQL查询由包处理。
当我对所有东西进行硬编码时,它工作得很好,所以这是一个好的开始。问题是,我需要根据用户在表单上选择的内容动态生成查询字符串,然后在AJAX调用期间将其传递到PHP文件,以将正确的内容拉入DIV。查询字符串需要更新,每次用户更改表单上的内容时都需要进行调用。因此,例如,如果用户勾选颜色"蓝色"的框,我需要在字符串中添加"+blue",然后重新发送AJAX调用。如果他们取消勾选蓝色,我需要删除"+blue"并重新发送AJAX调用等。
在这一点上,我已经超出了我的能力范围,所以我很感激任何关于如何实现这样的目标的指导。。。
目前,我有这个:
更新后的内容div称为"pbDiv"。
AJAX:
<script type="text/javascript">
function updateTable(str)
{
if (str=="")
{
document.getElementById("pbDiv").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("pbDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://MYSITE//pricebox.php?q="+str,true);
xmlhttp.send();
}
</script>
形式:
<form>
<select name="colour" onchange="updateTable(this.value)">
<option value="">Select a colour:</option>
<option value="blue">Blue</option>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="yellow">Yellow</option>
</select>
</form>
PHP文件只接受字符串,并且运行良好。正如你可能已经猜到的,问题是这种形式只适用于一件事(颜色)。使用this.value只传递下拉列表的选择。我不知道如何使用多个表单项并构建字符串。
对于每个表单项,给出一个唯一的id,然后对于每个项调用updateTable函数,但在调用该函数时不传递值,例如:
现在像这个一样修改您的updateTable函数
function updateTable(){
var str = 'color = '+ document.getElementById('colorField').value;
str += 'something = '+ document.getElementById('somethingField').value;
//now carry on your ajax stuff
}
- Ajax文件加载和<输入>文件加载
- AJAX文件上传与PHP验证
- 如何在ajax文件上传中添加额外的POST参数
- Ajax文件上传Vue.js
- ajax文件上传图片获取高度和宽度
- Rails和ajax文件上传-无法读取属性'innerHTML'的空错误
- 没有办法显示“;上传面板”;,没有“;文件面板”;在ITHit AJAX文件浏览器中可见
- Laravel 5 ajax文件上传
- AJAX文件上传到php,没有发送任何内容
- AJAX文件上传/表单提交,无需jquery或iframes
- 我的AJAX文件不起作用
- Valum's Ajax文件上传器-绑定到给定类的所有元素
- JSON响应一直未定义(ajax文件上传)
- 如何在 AJAX 文件上传后更新页面
- 如何输出反向顺序?AJAX 文件 > DIV.
- jquery ajax 文件上传,成功不被调用
- 将带有 php 和 javascript 变量的 php 文件包含在 ajax 文件中
- 如何在没有jQuery或iframe或flash的情况下为IE7 / 8制作AJAX文件上传器
- Jquery/ajax 文件上传
- jQuery Ajax 文件获取问题