PHP:打开另一个具有数组值的PHP


PHP: open another PHP with array value

是否可以打开另一个通过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']; ?>">