我想在多个页面上发布表单中的数据,但主要操作仍应为“”。所以点击后,它应该在同一页面上刷新,但 POST 数据也会转到另一个.php
. 我需要这个,因为在另一个 .php 文件中,创建了一个图形,该图形被嵌入回原始表单页面。
我试过使用隐藏字段。我也可以graph.php?var1=3&var2=3
,等等,但我宁愿不那样显示它。
我对javascript不太熟悉,但我觉得那是要走的路?
我想在多个页面上发布表单中的数据,但主要操作仍应为“”。所以点击后,它应该在同一页面上刷新,但 POST 数据也会转到另一个.php
. 我需要这个,因为在另一个 .php 文件中,创建了一个图形,该图形被嵌入回原始表单页面。
我试过使用隐藏字段。我也可以graph.php?var1=3&var2=3
,等等,但我宁愿不那样显示它。
我对javascript不太熟悉,但我觉得那是要走的路?
是的,听起来您应该进行 jQuery .ajax 调用或使用 XMLHTTPRequest。发布到你需要的 URL,一旦你得到结果,重新加载页面。
var i = 0
var pages = 3
var fd = new FormData();
fd.append( 'value1', $('form input').val() );
fd.append( 'value2', $('form textarea').val() );
$.ajax({
url: 'http://example.com/page1.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
$.ajax({
url: 'http://example.com/page2.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
$.ajax({
url: 'http://example.com/page3.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
var captureFunction = function() {
if(i != pages) return;
location.reload()
}
我认为这不会开箱即用,但会是您开始 hack 的一个很好的起点。
由于您正在使用PHP
当页面重新加载时,将 POST 请求卷曲到每个所需的页面。
例如
class Asynchronous {
public function add($url, $params)
{
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(',', $val);
$post_params[] = $key.'='.urlencode($val);
}
$post_string = implode('&', $post_params);
$parts=parse_url($url);
$fp = fsockopen($parts['host'],
isset($parts['port'])?$parts['port']:80,
$errno, $errstr, 30);
$out = "POST ".$parts['path']." HTTP/1.1\r\n";
$out.= "Host: ".$parts['host']."\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: ".strlen($post_string)."\r\n";
$out.= "Connection: Close\r\n\r\n";
if (isset($post_string)) $out.= $post_string;
fwrite($fp, $out);
fclose($fp);
}
}