【问题标题】:PHP: open another PHP with array valuePHP:打开另一个具有数组值的 PHP
【发布时间】:2012-07-21 21:18:18
【问题描述】:

是否可以通过 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 时,在具有 $array 值的新窗口中打开 print_array.php。

if (is_array($array)) {
  print_r($array);
} else {
  ...
}

print_array.php 中的结果是

Array ( [0] => 111 [1] => 222 [2] => 333 )

我不认为 header("Location: print_array.php") 可以传递数组值。 有什么好的方法可以在新窗口中打开另一个 PHP 页面并传递数组值?

【问题讨论】:

  • 新窗口有条件地意味着通常涉及 Javascript 而不是 PHP。所以我会说简单的答案是“不”。无需赘述。

标签: php arrays new-window


【解决方案1】:

要使用 Javascript 打开窗口,请在页面加载时使用 window.open()。

要将数据获取到新页面,请使用 _SESSION 变量。当您使用 swtich 访问脚本时,请使用:

start_session(); 
$_SESSION['data'] = $_POST['array'];

在新窗口上(使用 header() 进入后,使用:

start_session();
$array = $_SESSION['data'];

您将可以在新窗口中访问整个数组。

【讨论】:

  • 我使用 session 来保存数组值和 javascript 打开新窗口.. 效果很好:) 谢谢!
【解决方案2】:

请记住,PHP 不会打开窗口等。您要执行的操作听起来需要在 HTML 和/或 javascript 中实现。

【讨论】:

    【解决方案3】:

    最好的方法是使用javascript:

    首先声明您的复选框以在单击时调用 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']; ?>">
    

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2018-11-16
      相关资源
      最近更新 更多