如何将参数从html页面(map.html)传递到php(createxml.php)而无需打开php页面?我在html页面(map.html)中加入了googlemaps,所以我希望用户在html页面上的表单上输入数据,然后将其发送到php(createxml.php),然后将连接到mySQL DB并创建xml格式响应html页面使用此xml输出在地图上创建位置,因为它包含经度和纬度。 我在php页面(createxml)的标题中使用了以下代码,但它显示了php文件的内容,暂时将我重定向到map.html 感谢您的时间,如果需要,我可以发布所有代码。
<meta http-equiv="refresh" content="0;url=http://localhost/map.html/">
答案 0 :(得分:2)
使用AJAX非常简单,使用jQuery你不必了解它:) 因此,只需导入最新的jQuery Library。
然后你有你的表格:
<form id="my_form">
<input type="text" name="param1" />
<input type="text" name="param2" />
<input type="hidden" name="action" value="do_stuff" />
<input type="submit" value="Submit" />
</form>
在其下方的某处,您只需粘贴这个小的javascript函数,它处理表单的提交:
<script>
$('#my_form').submit(function(){
var post_params = $('#my_form').serialize();
$('#waiting').show();
$.post('the_page_you_are_on.php', post_params, function(data) {
$('#waiting').hide();
return false;
})
});
</script>
(id为“waiting”的元素(div,p ...)可以包含其中一个花哨的ajax加载图片,但不是必要的!:)如果你想要一个显示,请通过谷歌找到一个,将其设置为#waiting-element的背景图像,并将其显示设置为none(CSS)。
函数本身只调用你所在的页面然后你的后期数组中有表单变量,所以你的页面顶部看起来像这样:
<?php
if(isset($_POST['action'])) {
switch($_POST['action']) {
case 'do_stuff' :
$param1 = $_POST['param1'];
$param2 = $_POST['param2'];
//do some DB-stuff etc.
break;
}
}
?>
我希望有所帮助!
答案 1 :(得分:1)
这是一个糟糕的主意,但是因为你不想使用AJAX,你可以将PHP放在一个框架中并重新加载该部分。再一次,可怕的想法,但你最接近你将不使用AJAX。
虽然有用,但AJAX实际上只是javascript中的一个函数。要学习并不难。
答案 2 :(得分:1)
如果您只是尝试从Web浏览器向PHP页面传递参数,除了'Ajax'之外还有其他方法可以做到这一点。查看此页面并查看源代码(请务必查看包含的javascript文件的来源:http://hazlo.co/showlist.php?s=chrome&i=4e289d078b0f76b750000627&n=TODO
它使用一种非常基本的方法来更改图像元素的src,但是将信息传递给图像请求的查询字符串中的Web服务器(PHP页面)。在这个例子中,我实际上关心结果,它们被表示为图像,但听起来你只是想将数据传递给服务器,所以如果你愿意,你可以返回1像素的图像。顺便说一句,不要被正在使用的URL所迷惑,服务器规则告诉apache在检查时处理特定的PHP文件,请求GIF。
您应该使用它并使用firebug或chrome的内置调试器来监视发送到服务器的请求。
答案 3 :(得分:0)
如果您没有请求并处理输出,则无法从PHP脚本中获取任何结果。如果您不想离开当前页面,必须使用AJAX !
“但它会在短时间内显示php文件的内容”原因是,您的浏览器首先需要加载整个页面,然后启动META重定向。您不需要重定向来从服务器加载数据,但如果您真的想要,则应该使用redirect的HTTP标头。
答案 4 :(得分:0)
好的家伙经过几个小时的头痛我终于找到了解决方案!基本上我从我的map.html中调用了我的xmlproduce.php,lemme解释所以也许会帮助别人:
maps.html包含一个googlmap API Javascript函数,该函数调用我的createxml.php,名为second.php
GDownloadUrl("second.php", function(data) )
我所做的是通过在URL中添加一些参数来调整对second.php的调用,如:
GDownloadUrl("second.php?strt="+ysdate+"/"+msdate+"/"+dsdate+"&end="+yedate+" /"+medate+"/"+dedate+"&id="+ide, function(data)
这是发送second.php所需的参数,所以之后我做了一个小的html表单,在同一个文件(map.html)上调用了googlemap api的脚本,将表单中的参数传递给了GDownloadUrl i如上所述,表格的代码是:
form method="get" action="">
IMEI: <input type="text" id="id" name="id" size="25" /> <br />
Start Date: <input type="text" id="ysdate" name="ysdate" size="4" value="2000" /> <input type="text" id="msdate" name="ysdate" size="1" /> <input type="text" id="dsdate" name="dsdate" size="1" /> <br/>
End Date: <input type="text" id="yedate" name="yedate" size="4" /> <input type="text" id="medate" name="ysdate" size="1" /> <input type="text" id="dedate" name="dedate" size="1" /> <br/>
<input type="button" value="submit" onClick="load()" />
</form>
之后我在表单上为允许的值添加了额外的约束。 感谢大家的帮助,你可以随时询问是否有人需要澄清。