2012-04-09 8 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> 

チェックボックスをクリックし、[送信]ボタンiが{$holiday->title}の値がsaveProcess.phpに投稿してエコーしたいクリックされたとき。現在私はエラーが発生しました

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

この理由は何ですか? XMLファイルがsaveProcess.phpファイル内でインスタンス化されていないか、または表示されない構文エラーがある可能性がありますか?

おかげ

+0

をあなたが行うときは、< '何を参照していますPHPエコーますprint_r($? _役職); ?> 'saveProcess.php? – hohner

+0

'Array([btnOutput] => submit)1' –

+0

Firebugでは、チェックボックスの要素が見えますか?それが名前として 'chk'を持っていることを確認してください。 – hohner

答えて

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

これは正解です。 –

+0

私は今、{$ holiday-> title}ではなくsaveProcessに 'Array'という出力を与えていますか? –

+0

名前に '[]'が付いたチェックボックスなので、$ _POSTの値を配列に変換します。説明のために私の更新された答えを参照してください – hohner

関連する問題