2017-03-01 1 views
0

Hey Ich habe derzeit ein Problem mit dem Versuch, meine Eingabe-Schaltfläche haben einen Wert der ID/Server, die ich brauche und es zeigt einen anderen Wert, so ist mein Code derzeit sieht ich kenne die HTML und Formulare sind ungültig ich werde es aber sein Refactoring ich versuche, eine Server-Kennung und eine ID-Kennung zu einer anderen SeitePHP-Taste klicken - Wert/ID zu übergeben

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 
echo '<form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded">'; 
echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 
for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 
?> 
    <td> 
     <button class="submit" type="submit" value="<?php echo $propertyID->item($i)->getAttribute('pid'); ?>" name="submit22">something </button> 
    </td> 
</tr> 
<?php 
} 
?> 
</form> 
+1

Verwendung auspacken, warum Sie Formular-Tag in der Schleife zu schaffen? – Naincy

+1

Zunächst müssen Sie aufhören, ungültiges HTML zu erstellen - 'form' kann kein Kind von' table' sein, Sie müssen entweder die Tabelle innerhalb des Formulars oder das Formular innerhalb einer einzelnen Tabellenzelle ablegen. – CBroe

+0

Was enthält die Variable '$ propertyType'? –

Antwort

0

zu überqueren zu bekommen Wenn Sie versuchen, eine Menge Form zu erzeugen, Jeder mit nur einer Schaltfläche, dann müssen Sie das Formular in eine Tabellenzelle wie folgt setzen

Es könnte auch nützlich sein, die Datenelemente, die Sie übergeben möchten, ausgeblendet Felder, anstatt versuchen und 2 Datenelemente in die Schaltfläche Wert setzen

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 
echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 
for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 

    $pid = $propertyID->item($i)->getAttribute('pid'); 
?> 
    <td> 
     <form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded"> 
      <input type="hidden" name="pid" value="<?php echo $pid;?>"> 
      <input type="hidden" name="server" value="<?php echo $server;?>"> 
      <button class="submit" type="submit" value="submit" name="submit22">something</button> 
     </form> 
    </td> 
    </tr> 
<?php 
} 
?> 

Wenn Sie nur die Taste wollen alle Daten zu transportieren und haben nur eine Form, um die zwei Datenelemente in einer Zeichenfolge und gesendet werden müssen, verpacken als Wert der die Daten für die Schaltfläche

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 

echo '<form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded">'; 

echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 

for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 

    $dataPackage = $propertyID->item($i)->getAttribute('pid') . ':' . $server; 
?> 
    <td> 
     <button class="submit" type="submit" value="<?php echo $dataPackage;?>" name="submit22">something</button> 

    </td> 
    </tr> 
<?php 
} 
</table> 
</form> 
?> 

nun in der Aufnahmeform

<?php 
// usual checks for things existing 
list($pid, $server) = explode(':', $_GET['submit22']; 
+0

Ja, ich bin mir nicht sicher, welches Programm besser programmatisch ist, um viele Formulare zu haben oder nur eines, weil sie alle auf den gleichen Platz verweisen. Das funktionierte wirklich sehr gut. Vielen Dank. Ich versuchte die ID und den Server bei jedem Klick zu übergeben So hielt Knopf 1 den Wert 1 und der Server, zu dem es gehörte – jamied

+0

Aus Ihrem Code bleibt 'server' während der gesamten Schleife gleich, aber' pid' ändert sich jedes Mal durch die Schleife. Also brauchst du bestimmt mehr als einen Knopf? – RiggsFolly

+0

Nun, die Schaltfläche soll die Informations-ID und den Server zu einer anderen Seite führen, die dann für den Rest der Webseite verwendet wird. – jamied

Verwandte Themen