Bir diziye özgü alanları toplayın

3 Cevap php

Sınıf "satırındaki" ile her div seferde birden fazla öğe eklemek mümkün olması için, kullanıcının talebi üzerine ilave edilir. Yani şimdi ben (örneğin JSON gibi) PHP okuyabilir bir dizi için tüm formları toplamak olacak nasıl sorudur. Ben bunu bazı kolay ve etkili yolu zaten var olduğunu tahmin edeceksiniz?

<div class="container">
    <div class="row">
        <input type="text" name="value1" id="textfield" />
        <input type="text" name="value2" id="textfield" />
        <input type="text" name="value3" id="textfield" />
    </div>

</div>

Burada gösterilen örnek üzerinden ulaşmak istiyorum ne:

array( 
    array ('value1' => '',
           'value2' => '',
           'value3' => '')
);

Teşekkürler!

Update: The form will be handled with PHP and it would be super to be able to do something like a foreach loop on the specific container-div content.

3 Cevap

Sonra sonuna köşeli parantez eklemek, girişlerin aynı ismi her bir 'grup' ver

<div class="container">
    <div class="row">
        <input type="text" name="value1[]" id="textfield" />
        <input type="text" name="value2[]" id="textfield" />
        <input type="text" name="value3[]" id="textfield" />
    </div>
    <div class="row">
        <input type="text" name="value1[]" id="textfield" />
        <input type="text" name="value2[]" id="textfield" />
        <input type="text" name="value3[]" id="textfield" />
    </div>
</div>

Eğer form göndermek zaman, php $_POST değişken ardından value1, value2 ve value2 diziler içerecektir:

var_dump($_POST); // array('value1' = array(...

Daha sonra 'regroup' PHP (ama önce, ben vb ziyade değer1 daha field1 için alan adlarını değiştirmek istiyorum) içindeki satırlar aracılığıyla yineleme yapabilirsiniz:

$rows = array(); // set up an empty array to hold your rows

// loop through each POST var
foreach($_POST AS $key=>$field) {
    if(is_array($field)) {
        foreach($field AS $rowIndex=>$fieldValue) {
            $rows[$rowIndex][$field] = $fieldValue; // put the value in a the array by row, field
        }
    }
}

var_dump($rows);

Bu verecekti:

array(
    [0] => array(
        'field1' => 'value1',
        'field2' => 'value2',
        'field3' => 'value3'
    ),
    [1] => array(
        'field1' => 'value1',
        'field2' => 'value2',
        'field3' => 'value3'
    ),
    ...
)
<div class="container">
    <div class="row">
        <input type="text" name="value[0][value1]" class="textfield" />
        <input type="text" name="value[0][value2]" class="textfield" />
        <input type="text" name="value[0][value3]" class="textfield" />
    </div>
    <div class="row">
        <input type="text" name="value[1][value1]" class="textfield" />
        <input type="text" name="value[1][value2]" class="textfield" />
        <input type="text" name="value[1][value3]" class="textfield" />
    </div>
</div>

Aynı id yeniden kullanılması gibi sınıf değiştirdi kimliği geçersiz HTML.

JSON XML ile dönüştürmek için deneyebilirsiniz: