SORU
12 Mart 2010, Cuma


Php ile POST ile çok boyutlu bir dizi gönderme

Sütun (örn. bilinen bir numarası olan bir php form var üst çapı, taban çapı, kumaş, renk, miktar), ama kullanıcılar olarak satır ekleme gibi satır sayısı bilinmeyen vardır.

Bu alanlar(sütunlar) her nasıl keşfetti ve kendi dizisine onlara yer verdim.

<input name="topdiameter[' current ']" type="text" id="topdiameter' current '" size="5" />
<input name="bottomdiameter[' current ']" type="text" id="bottomdiameter' current '" size="5" />

Ben HTML ile sonu ne olur:

<tr>
  <td><input name="topdiameter[0]" type="text" id="topdiameter0" size="5" /></td>
  <td><input name="bottomdiameter[0]" type="text" id="bottomdiameter0" size="5" /></td>
</tr>
<tr>
  <td><input name="topdiameter[1]" type="text" id="topdiameter1" size="5" /></td>
  <td><input name="bottomdiameter[1]" type="text" id="bottomdiameter1" size="5" /></td>
</tr>

...and so on.

Şimdi yapmak istediğim tüm satırları almak ve sütunlar çok boyutlu bir dizi içine koymak ve müşteri bu içeriği (güzelce biçimlendirilmiş bir tablo tercihen) e-posta. Tüm bu girdileri birleştirmek için nasıl gerçekten anlamak mümkün olmamıştır ve güzel bir diziye seçer.

Bu noktada, tek bir 2D dizi kullanarak birkaç 1D dizileri kullanarak daha iyi bir uygulama olacağını bilmiyorum, ancak birkaç 1D diziler kullanmak için denemek için gidiyorum.

(edit: kodda yazım hatası küçük)

CEVAP
12 Mart 2010, Cuma


Gönderme, eğer böyle yaratılmış gibi bir dizi olacaktı:

$_POST['topdiameter'] = array( 'first value', 'second value' );
$_POST['bottomdiameter'] = array( 'first value', 'second value' );

Ancak, bu biçim, form adları yerine değiştirmeyi öneriyorum:

name="diameters[0][top]"
name="diameters[0][bottom]"
name="diameters[1][top]"
name="diameters[1][bottom]"
...

Bu biçimi kullanarak, çok daha kolay değerleri döngü.

if ( isset( $_POST['diameters'] ) )
{
    echo '<table>';
    foreach ( $_POST['diameters'] as $diam )
    {
        // here you have access to $diam['top'] and $diam['bottom']
        echo '<tr>';
        echo '  <td>', $diam['top'], '</td>';
        echo '  <td>', $diam['bottom'], '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006