2012-04-09 74 views
1

我已經將XPath搜索集成到了我的網站,當用戶搜索時,他們會看到他們的結果以及每個搜索框的複選框,如下所示。以表格形式發佈XML值

<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; 
?> 

這是什麼原因?難道XML文件沒有在saveProcess.php文件中實例化,或者是我沒有看到語法錯誤?

感謝

+0

你看到什麼,當你做'在saveProcess.php中? – hohner 2012-04-09 10:09:40

+0

我看到'Array([btnOutput] => submit)1' – 2012-04-09 10:13:22

+0

在Firebug中,你能看到複選框元素嗎?確保它有'chk'作爲名字 – hohner 2012-04-09 10:16:52

回答

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 
} 
+0

中看到表單動作和提交按鈕,這是正確的答案。 – 2012-04-09 10:44:19

+0

當我現在提交我在saveProcess輸出'Array'而不是{$ holiday-> title}? – 2012-04-09 10:49:57

+0

因爲它的名稱中帶有'[]'的複選框,所以它將$ _POST值轉換爲數組。查看我的更新回答以獲得解釋 – hohner 2012-04-09 10:53:41