Array Degeri Silme

Ben dun array degerlerini duzenli sıralayabilmek için bir soru sormuştum.Şimdi ise duzenli array degerlerinden istedigim veriyi silmek istiyorum.Bunun için del.php adından bir sayfa oluşturdum ve işlem yapılacak satırların degerlerini post metodu ile oraya aktarıyorum.Fakat hata alıyorum.Ayrıca kaç adet satır silindigini index.php de alert box olarak ekrana yazmak istiyorum.Ornek kod aşagıdadır.

İndex.php

<?php
echo "<script language="javascript">
alert("<?php echo count($_POST['del']); ?> Adet satır silindi.");
</script>";
$dizi = array("google.com.tr","sanalkurs.net");
$sayaç = count($dizi);
echo '<form action="del.php" method="post">';
for ($i = 0; $i < $sayaç; $i++) {
    echo "<a href=".$dizi[$i].">link".$i.'<label><input type="checkbox" name="del" value="'.$i.'"/></label><br>';
	
}
echo '<input type="submit" value="Seçilileri sil"></form>';
?>

 

Del.php

<?php 
header ("Location:index.php");
include 'index.php';
if(isset($_POST['del'])) {
    unset($dizi[$_POST['del']]);
    }
?>

 

del.php dosyasında $dizi değişkenini kullanmışsınız fakat tanımlamamışsınız. POST ile seçilen veriyi del.php dosyasına göndermenize rağmen index.php dosyasından okumaya çalışmışsınız.

Form etiketinin action="del.php" kısmını silin.

<?php

session_start();

if (!isset($_SESSION["dizi"]) {
$_SESSION["dizi"] = array("google.com.tr","sanalkurs.net");

}

$dizi = $_SESSION["dizi"];

if (isset($_POST["del"])) {

foreach($_POST["del"] as $ch) {
unset($_SESSION["dizi"][$ch]);

}

echo "<script language="javascript">
alert("<?php echo count($_POST['del']); ?> Adet satır silindi.");
</script>";

}

$sayaç = count($dizi);

echo '<form action="del.php" method="post">';

for ($i = 0; $i < $sayaç; $i++) {
    echo "<a href=".$dizi[$i].">link".$i.'<label><input type="checkbox" name="del[]" value="'.$i.'"/></label><br>';
	
}
echo '<input type="submit" value="Seçilileri sil"></form>';
?>

Bu şekilde session veya cookie kullanarak diziyi depolarsanız verileri düzenleyebilirsiniz.

Ajax kullanmıyorsanız del.php şeklinde ayrı bir php sayfası kullanmanıza gerek yok.

Kullanmak isterseniz del.php içinde session değişkenini istediğiniz gibi değiştirip tekrar önceki sayfaya yönlendirebilirsiniz.

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git