Ich erstelle dynamisch 10 Zeilen in einer Tabelle mit einer Schaltfläche am Ende jeder Zeile. Diese Zeilen sind alle in einem Formular enthalten. Wenn ich eine Taste drücken $_POST
array(0) { }
zurückgibt und die von php://input
gesammelten Inhalte sindIdentifizieren, auf welche dynamisch generierte Schaltfläche geklickt wurde
string(239) "code=J7410&amount=0&code=abc123&amount=0&code=42139&amount=0&code=BBTCG&amount=0&code=13064&amount=0&code=D40717&amount=0&code=D11255&amount=0&code=D40617&amount=0&code=D68691&amount=0&code=11-600.50.04&amount=0&code=9789170378041&amount=0"
Dies ist um so einen entsprechenden Code:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
<tr>
<td>ID</td>
<td>Name</td>
<td>VAT(%)</td>
<td>Price exl VAT</td>
<td>Amount</td>
</tr>
<?php
foreach ($json as $row)
{
$code = $row['code'];
echo "<tr>";
?>
<td><input type="text" name="code" value="<?php echo $code?>" readonly title=""></td>
<?php
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['vat'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . "<input type='number' name='amount' value='0'>" . "</td>";
?>
<td><input type="submit" name="<?php $row['code'] ?>" value="Add To Cart"></td>
<?php
echo "</tr>";
}
echo "</table>";
echo "</form>";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
var_dump($_POST);
$rest_json = file_get_contents("php://input");
var_dump($rest_json);
}
Was muss ich hier ist eine Möglichkeit, zu erkennen, welche Taste war geklickt. Entweder über die ID oder wenn es eine Möglichkeit gibt, den Schaltflächen eindeutige IDs zuzuweisen, die dieses Problem lösen.
Die Variable $json
wird ähnlich wie $rest_json
aus einer Datei gelesen und funktioniert einwandfrei.
Ich habe gestern mit PHP angefangen, also sind alle Vorschläge und Meinungen, die helfen können, sehr willkommen.
also, was hindert Sie aus jeder Taste eine eindeutige ID geben? Erhöhen Sie einfach eine Integer-Variable in jeder Schleife und fügen Sie 'id =" Echo $ number;?> "' Oder etwas ähnliches hinzu? – icecub
Ich habe das versucht, aber es hat mein Problem nicht gelöst. Ich ging davon aus, dass das Problem im Code lag und nicht wusste, auf welche Schaltfläche geklickt wurde, da php: // input eine Zeichenfolge wiederherstellt, die alle Daten enthält, die jede Schaltfläche zusammen senden würde. – Nethakaaru