使用表单发布XML值

时间:2012-04-09 09:54:36

标签: php xml forms xpath

我已将XPath搜索集成到我的网站,当用户搜索时,会向他们显示结果以及每个搜索结果的复选框,如下所示。

<form action="saveProcess.php" method="POST">
            <?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"  name="btnOutput" value="submit"/>
        </form>

单击复选框并单击提交按钮时,我希望将{$holiday->title}的值发布到saveProcess.php并回显。目前我遇到了错误Notice: Undefined index: chk in saveProcess.php

<?php
    $title = $_POST['chk']
    echo $title;
?>

这是什么原因?可能是因为没有在saveProcess.php文件中实例化XML文件,或者是否存在我没​​有看到的语法错误?

由于

1 个答案:

答案 0 :(得分:3)

似乎你回声任何东西。你需要使用:

<?php
   $resultTable = '';
   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>";              
   }
   echo $resultTable;
?>

因为您的元素名称末尾有[],所以它表示您希望将其$ _POST值作为数组的一部分。它在PHP中看起来像这样:

array(0 => 'First value', 1 => 'Second value', 2 => 'Third value)

如果您需要单独处理每个值,可以遍历它:

foreach($_POST['chk'] as $check_value)
{
   // process $check_value
}