2017-06-11 51 views
0

獲取數組索引我有我已經提交了在用foreach的形式顯示對象的數組,我做到了這樣:如何從一個按鈕PHP

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

當「 - 」按下按鈕,該按鈕的陣列的位置必須被淘汰,這與在另一大類下面的代碼完成:

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

但我不知道如何發送按下的按鈕

的索引值

我牛逼看起來像這樣 empty array 3 object in the array

回答

2

您可以添加索引作爲這樣一個隱藏的輸入:

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

該指數則在$ _ POST變量$_POST['index']

但是,如果你要小心使用數字索引,因爲如果您取消設置,那麼索引可能不再正確。更好地使用關聯數組。

+1

使用會話數組索引看來我錯了。我想這樣做的值的搜索以除去含值陣列項,或使用關聯數組用'陣列(uniqid()=> $對象)'在施工會更適合於該任務(一般)。 –

+0

@Jared是的,這可能是一個問題 – Sepultura

+0

感謝@Sepultura,我可以在foreach並與輸入隱藏發送指數增加$指數=> $對象解決這個問題,現在我可以添加和正確刪除。 – kmilo93sd

相關問題