执行多个php页面在一个单一的点击
Execution of multiple php pages on a single click
这是我的代码片段:
<html>
<script type="text/javascript">
function Run()
{var a=["ONE" ,"TWO" ,"THREE", "FOUR", "FIVE"];
window.location.href = "index.php?w1=" +a;}
</script>
<body>
<input type="button" id="upload" value="RUN" onclick="Run();" />
<body>
</html>
当点击'RUN'时,我需要将数组值一个接一个地发送到多个页面,而不需要在页面之间移动。
1. Page1 index.php // a has no use, executed first
2. Page2 index2.php // a is used here, executed second
3. Page3 index3.php // a is used here, executed third
有可能吗?
听起来您可以实现您正在尝试使用ajax。要使它们同步运行(一个接一个),可以在当前运行的ajax的成功回调中调用下一个PHP页面。下面的一些伪代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
var data = "my data";
$.ajax({ url: 'index.php',
data: { data: data },
type: 'post',
success: function(output) {
runindex2(output.data);
}
});
function runindex2(data) {
$.ajax({ url: 'index2.php',
data: { mydata: data },
type: 'post',
success: function(output) {
runindex3();
}
});
}
function runindex3()....
</script>
最佳案例:
使用ajax。
<html>
<head>
<script type="text/javascript">
var xmlhttp = new Array;
var url = new Array;
// Create 3 instances.
for (var i = 0; i < 3; i++) {
xmlhttp[i] = new XMLHttpRequest;
}
var arr = ["ONE", "TWO", "THREE", "FOUR", "FIVE"];
// function which will run
// on button click.
function Run() {
var url1 = "test.php?w1=" + arr;
var url2 = "test1.php?w1=" + arr;
var url3 = "test2.php?w1=" + arr;
url = [url1, url2, url3];
for (var i = 0; i < 3; i++) {
xmlhttp[i].open("GET", url[i]);
xmlhttp[i].onreadystatechange = function() {
if (this.readyState == 4) {
document.write(this.responseText);
}
}
xmlhttp[i].send(null);
}
}
</script>
</head>
<body>
<input type="button" id="upload" value="RUN" onclick="Run();" />
<body>
</html>
复杂解决方案:
在文档中使用4个iframe。首先保持它们不显示。然后单击按钮,打开所有iframe中的url。
<html>
<head>
<script type="text/javascript">
var url = new Array;
var arr = ["ONE", "TWO", "THREE", "FOUR", "FIVE"];
// function which will run
// on button click.
function Run() {
var url1 = "test.php?w1=" + arr;
var url2 = "test1.php?w1=" + arr;
var url3 = "test2.php?w1=" + arr;
url = [url1, url2, url3];
var iframes = document.getElementsByTagName("iframe");
for (var i = 0; i < iframes.length; i++) {
iframes[i].src = url[i];
}
}
</script>
</head>
<body>
<input type="button" id="upload" value="RUN" onclick="Run();" />
<iframe style='display:none;'></iframe>
<iframe style='display:none;'></iframe>
<iframe style='display:none;'></iframe>
<body>
</html>
的另一个方法:
在您的服务器中,您可以将其他两个文件包含到一个文件中。这里我在test.php
中包含了test1.php和test2.php<?php
var_dump($_GET["w1"]);
include "test1.php";
include "test2.php";
?>
html: <html>
<head>
<script type="text/javascript">
var arr = ["ONE", "TWO", "THREE", "FOUR", "FIVE"];
// function which will run
// on button click.
function Run() {
window.location.href = "test.php?w1=" +arr;
}
</script>
</head>
<body>
<input type="button" id="upload" value="RUN" onclick="Run();" />
<body>
</html>