2012-04-06 63 views
0

我有一个使用XPath的搜索功能,当显示结果时,复选框也会被回显。POST变量到另一个类

<form name="save" method="POST" action="saveProcess.php"> 
      <?php 
      foreach ($holidays as $holiday) 
      { 
       $resultTable .= "<p><a href=\"{$holiday->link}\">{$holiday->title}</a>" . "<br/>" . 
       "{$holiday->pubDate}" . "<br>" . 
       "{$holiday->description}" . "<input type='checkbox' name='chk' value='{$holiday->title}' />" . "<br /></p>";    
      } 
      ?> 
      <input type="submit" value="submit"/> 
     </form> 

我想该复选框来保持其中当提交表单将在saveProcess.php中给出的的{$holiday->title}值,我使用isset方法来检查,如果变量被设置,它不是。

if (isset($_POST['chk'])) { 
    echo $_POST['chk']; 
} 
else 
{ 
    echo"variable is not set"; 
} 

我在哪里出错了?

+0

用' 2012-04-06 09:56:31

回答

2

您的代码看起来不错给我,只记得,如果复选框被选中复选框的值只贴了,如果它不checket $_POST['chk']未设置

编辑 - 因为你revriting您的复选框的建议在注释中使用数组

 <?php 
     foreach ($holidays as $holiday) 
     { 
      $resultTable .= "<p><a href=\"{$holiday->link}\">{$holiday->title}</a>" . "<br/>" . 
      "{$holiday->pubDate}" . "<br>" . 
      "{$holiday->description}" . "<input type='checkbox' name='chk[]' value='{$holiday->title}' />" . "<br /></p>";    
     } 
     ?> 

然后服务器端$_POST['chk']会安阵

+0

这是不行的。他重写他的复选框 – 2012-04-06 10:00:03

+0

@Martin。你是对的我编辑我的答案和+1给你! – 2012-04-06 10:04:18

+0

这个解决方案仍然导致我的变量没有被设置。 – 2012-04-06 18:21:58

2

的问题是,你命名每一个复选框“CHK”,当你提交表单,该值会被覆盖。这就是为什么它在saveProcess.php中没有得到任何东西。你需要做的,要么指定的$ _ POST [“CHK”]可以包含的值的数组,像这样:

<input type='checkbox' name='chk[]' value='{$holiday->title}' /> 

声明的方括号中的名字。现在$ _POST [“chk”]将是一个数组。

另一种方式,是离开的HTML,因为它是和刚刚得到的数据,在saveProcess.php,使用:

$HTTP_POST_VARS["chk"] 

第一部分主要解释了为什么它不工作,以及如何修复它,而第二个建议,只是获取数据的另一种方式。

祝您有美好的一天!

+1

其实,你的答案是唯一正确的! – 2012-04-06 09:58:58

+0

谢谢你,马丁! – 2012-04-06 09:59:41

+0

这也似乎没有工作,我的变量还没有设置 – 2012-04-06 10:12:53