Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不必加载的情况下将参数传递到php页面_Php_Mysql_Html_Google Maps - Fatal编程技术网

如何在不必加载的情况下将参数传递到php页面

如何在不必加载的情况下将参数传递到php页面,php,mysql,html,google-maps,Php,Mysql,Html,Google Maps,如何将参数从html页面(map.html)传递到php(createxml.php),而不必打开php页面?我将Google地图合并到html页面(map.html)中,因此我希望用户在html页面的表单上输入数据,然后发送到php(createxml.php),php将连接到mySQL数据库并创建响应的xml格式。html页面使用此xml输出在地图上创建位置,因为它包含经度和纬度。 我在php页面(createxml)的标题中使用了以下代码,但它显示了php文件的内容,并将我重定向到map.

如何将参数从html页面(map.html)传递到php(createxml.php),而不必打开php页面?我将Google地图合并到html页面(map.html)中,因此我希望用户在html页面的表单上输入数据,然后发送到php(createxml.php),php将连接到mySQL数据库并创建响应的xml格式。html页面使用此xml输出在地图上创建位置,因为它包含经度和纬度。 我在php页面(createxml)的标题中使用了以下代码,但它显示了php文件的内容,并将我重定向到map.html 谢谢你的时间,我可以张贴所有的代码,如果需要的话

      <meta http-equiv="refresh" content="0;url=http://localhost/map.html/"> 

如果不请求PHP脚本并处理其输出,则无法从该脚本获得任何结果。如果你不想离开当前页面,你必须使用AJAX


“但它会短暂地显示php文件的内容”原因是,您的浏览器首先需要加载整个页面,然后启动元重定向。从服务器加载数据不需要重定向,但如果确实需要,应该使用HTTP头。

如果不请求PHP脚本并处理输出,则无法从PHP脚本中获得任何结果。如果你不想离开当前页面,你必须使用AJAX


“但它会短暂地显示php文件的内容”原因是,您的浏览器首先需要加载整个页面,然后启动元重定向。从服务器加载数据不需要重定向,但如果确实需要,应该使用HTTP头。

这是一个糟糕的主意,但因为不想使用AJAX,所以可以将PHP放在一个框架中,然后重新加载该部分。同样,这是一个糟糕的想法,但是如果不使用AJAX,您将获得最接近的结果


不过值得注意的是,AJAX实际上只是javascript中的一个函数。这一点都不难学。

这是一个糟糕的想法,但因为您不想使用AJAX,所以可以将PHP放入一个框架中,然后重新加载该部分。同样,这是一个糟糕的想法,但是如果不使用AJAX,您将获得最接近的结果


不过值得注意的是,AJAX实际上只是javascript中的一个函数。学习一点也不难。

使用AJAX非常简单,使用jQuery您不必了解太多:) 因此,只需导入最新版本

然后你有你的表格:

<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>

$('#我的表格')。提交(函数(){
var post_params=$(“#我的表单”).serialize();
$('#waiting').show();
$.post('the_page_you_are_on.php',post参数,函数(数据){
$(“#等待”).hide();
返回false;
})
});
(id为“waiting”的元素(div,p…)可能包含一个奇特的ajax加载图像,但不是必需的!:)如果您希望显示一个,请通过google查找一个,将其设置为#waiting元素的背景图像,并将其显示设置为无(CSS))

函数本身只调用您所在的页面,然后您的post数组中就有了表单变量,因此页面的顶部可能看起来像这样:

<?php

if(isset($_POST['action'])) {
  switch($_POST['action']) {
    case 'do_stuff' :
      $param1 = $_POST['param1'];
      $param2 = $_POST['param2'];

      //do some DB-stuff etc.
    break;
  }
}

?>


我希望这有帮助

使用AJAX非常简单,使用jQuery您不必了解太多:) 因此,只需导入最新版本

然后你有你的表格:

<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>

$('#我的表格')。提交(函数(){
var post_params=$(“#我的表单”).serialize();
$('#waiting').show();
$.post('the_page_you_are_on.php',post参数,函数(数据){
$(“#等待”).hide();
返回false;
})
});
(id为“waiting”的元素(div,p…)可能包含一个奇特的ajax加载图像,但不是必需的!:)如果您希望显示一个,请通过google查找一个,将其设置为#waiting元素的背景图像,并将其显示设置为无(CSS))

函数本身只调用您所在的页面,然后您的post数组中就有了表单变量,因此页面的顶部可能看起来像这样:

<?php

if(isset($_POST['action'])) {
  switch($_POST['action']) {
    case 'do_stuff' :
      $param1 = $_POST['param1'];
      $param2 = $_POST['param2'];

      //do some DB-stuff etc.
    break;
  }
}

?>


我希望这有帮助

如果您只是试图从web浏览器向PHP页面传递参数,那么除了“Ajax”之外,还有其他方法可以实现。查看此页面并查看源代码(确保查看包含的javascript文件的源代码:

它使用一种非常基本的方法来更改图像元素的src,但将信息传递给web服务器(PHP页面)在图像请求的查询字符串中。在本例中,我实际上关心的是结果,结果表示为图像,但听起来您只是试图将数据传递给服务器,因此如果您愿意,可以返回一个1像素的图像。顺便说一句,不要被使用的URL所愚弄,服务器规则告诉apache处理特定的图像PHP文件检查时,会请求GIF


您应该使用firebug或chrome的内置调试器来查看发送到服务器的请求。

如果您只是试图从web浏览器向PHP页面传递参数,除了“Ajax”之外,还有其他方法可以实现。请查看此页面并查看源代码(确保查看包含的javascript文件的源代码:

它使用一种非常基本的方法来更改图像元素的src,但将信息传递给web服务器(PHP页面)在图像请求的查询字符串中。在本例中,我实际上关心的是结果,结果表示为图像,但听起来您只是试图将数据传递到服务器,因此如果您愿意,可以返回1像素图像。顺便说一句,不要被使用的URL所愚弄,服务器规则告诉apache