是否可以打开另一个通过PHP函数传递$array的PHP文件(print_array.PHP)?
HTML:
<form method=post>
<input type="checkbox" name="array[]" value="111">
<input type="checkbox" name="array[]" value="222">
<input type="checkbox" name="array[]" value="333">
<button type="submit" name="action" value="print">Print</button>
<button type="submit" name="action" value="delete">Delete</button>
<button type="submit" name="action" value="add">Add New</button>
</form>
array[]都已检查,因此$array值为111、222和333。
然后,PHP函数:
switch ($action) {
case 'print': printing($_post['array']); break; /* open new window */
case 'add': break; /* same window */
case 'delete': break; /* same window */
default: break;
}
function printing($array) {
/* open print_array.php in a new window showing $array value */
}
然后,只有当action=print时,才在一个新窗口中打开print_array.php,该窗口的值为$array。
if (is_array($array)) {
print_r($array);
} else {
...
}
print_array.php中的结果将是
Array ( [0] => 111 [1] => 222 [2] => 333 )
我认为头("Location:print_array.php")不能传递数组值。有什么好方法可以在传递数组值的新窗口中打开另一个PHP页面吗?
要使用Javascript打开窗口,请在加载页面时使用window.open()。
要将数据获取到新页面,请使用_SESSION变量。当您使用swtich获取脚本时,请使用:
start_session();
$_SESSION['data'] = $_POST['array'];
在新窗口上(使用header()访问后,使用:
start_session();
$array = $_SESSION['data'];
您将可以在新窗口中访问整个阵列。
请记住,PHP不会打开窗口之类的东西。您想要做的事情听起来需要用HTML和/或javascript来实现。
最好的方法是使用javascript:
Firs声明您的复选框在单击时调用javascript函数:
<input type="checkbox" name="array[]" onclick="myfunction(111)" value="111">
然后在您的页面中包括以下内容:
<script type="text/javascript">
function myfunction(number) {
if (number == 111) {
location.href="mypage.html";
}
}
</script>
如果您严格希望使用PHP,也可以使用$_POST或$_GET。
在服务器端,您可以执行switch($_GET['array'])
并完成您的工作。通过这种方式,您必须将您的表格声明更改为
<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>">
或
<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>">