v2.5.2
Giriş yap

Aynı name ile post ettiğim diziyi ayrıştıramıyorum

spleidanger
231 defa görüntülendi

Merhaba herkese iyi çalışmalar jquery ile form'dan topluca inputlar yolluyorum
şu şekilde:

    <input type="hidden" name="content_id" value="<?php echo $contentrow['content_id'] ?>">
    <input type="text" class="form-control" name="content_detail" value="<?php echo $contentrow['content_detail'] ?>">
    var data=$('#form').serializeArray();

Bunları array halinde gönderiyor hiç bir problem yok buraya kadar herşey normal
fakat gelen diziyi php ile veritabanına eklemek istediğimde dizide birden fazla content_detail gibi olduğu için hangisini neyle nasıl eşleyeceğim bilemedim pek dizilerle aram yok biraz eksiğim bu konuda

php tarafında şu şekil yazdırıyorum

    $data=$_POST['data'];
	print_r($data);

yani uzun lafın kısası istediğim bu gönderdiğim çok boyutlu dizide
content_detail bilgisi geliyor content_id geliyor bunları birbiriyle eşliyip veritabanında güncelleme ekleme işlemleri yapmak istiyorum
Herkese iyi çalışmalar

Cevap yaz
Cevaplar (1)
ebykdrms
569 gün önce
<div>
    <input type="hidden" name="content_id" value="123">
    <input type="text" name="content_detail" class="form-control" value="abc1">    
</div>
<div>
    <input type="hidden" name="content_id" value="132">
    <input type="text" name="content_detail" class="form-control" value="abc2">
</div>
<div>
    <input type="hidden" name="content_id" value="213">
    <input type="text" name="content_detail" class="form-control" value="abc3">
</div>
<div>
    <input type="hidden" name="content_id" value="231">
    <input type="text" name="content_detail" class="form-control" value="abc4">
</div>

Bu şekilde input'lar var ve data key'iyle post ediliyorlar.
content_id ve content_detail dizi olarak PHP'ye iletiliyor ve bu dizilerin eleman sayıları aynı.
HTML'de de doğru sıralamayla dizilmişlerse yukarıdaki html koduna benzer yapıdan giden POST isteğinin PHP'de şu şekilde bir karşılığı oluşuyor olmalı:

$_POST["data"]["content_id"] = ["123", "132", "213", "231"];
$_POST["data"]["content_detail"] = ["abc1", "abc2", "abc3", "abc4"];

Bunları tek bir çatı altında birleştirmek istiyorsanız:

$content = [];
$contentCount = count($_POST["data"]["content_id"]);
for($i=0; $i < $contentCount; $i++) {
    $content[] = [
        "id" => $_POST["data"]["content_id"][$i],
        "detail" => $_POST["data"]["content_detail"][$i]
    ];
}
echo "<pre>";
print_r($content);
echo "</pre>";

Böylece $content değişkeninde verileri toplamış oldunuz.