2012-04-09 9 views
1

Ich habe eine XPath-Suche auf meiner Website integriert, wenn ein Benutzer sucht, werden sie mit ihren Ergebnissen sowie ein Kontrollkästchen für jeden angezeigt, in der folgenden Weise angezeigt.Post XML-Wert mit Formular

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

Wenn ein Kontrollkästchen angeklickt wird und der Submit-Button geklickt i der Wert von {$holiday->title} will saveProcess.php und wiederholte gebucht werden. momentan bin ich mit dem Fehler traf Notice: Undefined index: chk in saveProcess.php

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

Was ist der Grund dafür? könnte es sein, dass die XML-Datei nicht in der Datei saveProcess.php instanziiert wird oder gibt es einen Syntaxfehler, den ich nicht sehe?

Dank

+0

Haben Sie etwas sehen, wenn Sie tun ' 'in saveProcess.php? – hohner

+0

Ich sehe 'Array ([btnOutput] => senden) 1' –

+0

In Firebug, können Sie das Kontrollkästchen Element sehen? Stellen Sie sicher, dass es "chk" als Name hat – hohner

Antwort

3

Es scheint nicht, wie Sie aus etwas Echo. Sie müssen verwenden:

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

Da Ihr Element [] am Ende seines Namens hat, es zeigt an, dass Sie auf seine $ _POST Wert als Teil eines Arrays wollen. Es wird, wie dies in PHP aussehen:

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

Sie können Schleife durch sie, wenn Sie jeden Wert individuell verarbeiten müssen:

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

Dies ist die richtige Antwort. –

+0

Wenn ich jetzt abschicke, bekomme ich die Ausgabe 'Array' in saveProcess nicht den {$ holiday-> title}? –

+0

Da es ein Kontrollkästchen mit '[]' in seinem Namen ist, konvertiert es den Wert $ _POST in ein Array. Siehe meine aktualisierte Antwort für eine Erklärung – hohner