1

我想回显数组“名称”的一部分,然后在它旁边有一个提交按钮,该按钮重定向到一个新页面,该页面回显数组的其余部分,例如。地址,电话号码等。但是重定向时信息会丢失。有没有办法解决这个问题。这段代码应该解释我的意思。

第 1 页:

<?php
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
?>

<html>
  <form action='page2.php' method='POST'>
    <?php echo $info['name']; ?>
    <input type='submit' value='see other details'>
  </form>
</html> 

第2页:

<?php
   echo $info['address'].$info['address'].$info['address'];
?>
4

2 回答 2

0

重定向时信息会丢失。有没有办法解决这个问题

是的,使用 PHP 会话。将您的数组存储为$_SESSION['info'],它将在下一页上可用。不要忘记session_start()在两页上。

第 1 页:

<?php
   session_start();
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
   $_SESSION['info'] = $info;
?>

第2页:

<?php
   session_start();
   $info = $_SESSION['info'];
   echo $info['address'].$info['address'].$info['address'];
?>
于 2012-12-14T16:57:43.407 回答
0

除非这是您尝试做的一个大大简化的版本,否则没有理由在这里使用表单。您没有将任何数据发布到表单,只是使用它来访问另一个页面,这在技术上就是链接的用途。这不是对表格的公然错误使用,但也不是全部--正确--。

只需通过指向下一页的链接来回显该值。您可以使用 jQuery 按钮之类的东西来设置 a:link 的样式,如果需要的话,甚至可以使用图像来模仿按钮。

因此,例如:

<?php
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
?>

<html>
    <?php echo $info['name']; ?>
    <a href="page2.php">Submit</a>
</html> 

另一种选择是做两个堆叠的 div 并在单击按钮时显示/隐藏它们。它需要一点 jQuery 或 javascript,但消除了中间对服务器的影响,从而提供更流畅的用户体验。如果没有更多关于你想要做什么的细节,很难说什么是最好的。

最后,请记住,虽然会话确实有效,但可能存在问题。例如,一些公司和人员关闭会话(或完全阻止会话),因此不能 100% 依赖它们。特别是 IE(在某些版本中)解释了用户选择阻止 cookie 来阻止会话。如果他们在两个选项卡中打开您的应用程序,则可能会使值混淆并导致不良结果。至少,它可能会导致您的应用程序抛出各种吓唬用户的对话框,即使它们真的没什么大不了的。

于 2012-12-14T17:29:02.397 回答