2017-06-11 3 views
0

Ich habe ein Array mit Objekten, die ich vorgelegt haben, das Formular mit foreach angezeigt werden, ich es tat, wie:Wie kann ich den Array-Index von einer Schaltfläche php bekommen

<?php session_start(); if(isset($_SESSION['objectList'])){ 
foreach($_SESSION['objectList'] as $object){ 
    ?> 
    <form action="control.php" method="post"> 
    <input type="submit" name="op" value="-" /> <?php echo $object;?> 
    </form> 
<?php } 
}else{ 
echo "No hay objetos"; 
} 
?> 

Wenn die „-“ Taste gedrückt wird, muss die Position der Anordnung dieser Taste beseitigt werden, dass mit dem folgenden Code in einer anderen Klasse durchgeführt wird:

unset($_SESSION['objectList'][$object]); 
$_SESSION['objectList']=array_values($_SESSION['objectList']); 

Aber ich weiß nicht, wie der Indexwert der gedrückten Taste senden

I t wie folgt aussieht empty array 3 object in the array

Antwort

2

Sie den Index als versteckter Eingang wie folgt hinzufügen:

<?php session_start(); if(isset($_SESSION['objectList'])){ 
foreach($_SESSION['objectList'] as $index => $object){ 
    ?> 
    <form action="control.php" method="post"> 
    <input type="hidden" name="index" value="<?= $index; ?>" /> 
    <input type="submit" name="op" value="-" /> <?php echo $object;?> 
    </form> 
<?php } 
}else{ 
echo "No hay objetos"; 
} 
?> 

der Index dann im $ _POST Variable $_POST['index']

Aber Vorsicht, wenn Sie Verwenden Sie einen numerischen Index, da die Indizes möglicherweise nicht mehr korrekt sind, wenn Sie sie aufheben. Verwenden Sie besser ein assoziatives Array.

+1

Die Verwendung des Session Array Index scheint mir falsch. Ich würde denken, eine Suche nach dem Wert zu machen, um das werthaltige Array-Element zu entfernen, oder ein assoziatives Array mit 'array (uniqid() => $ object)' in der Konstruktion zu verwenden, wäre für die Aufgabe (im Allgemeinen) besser geeignet. –

+0

@Jared ja das könnte ein Problem sein – Sepultura

+0

danke @Sepultura, ich könnte es lösen, indem $ Index => $ -Objekt in der foreach und mit der Eingabe versteckt, um den Index zu senden, jetzt kann ich richtig hinzufügen und entfernen. – kmilo93sd

Verwandte Themen