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

  • Good Creative Academy

    Good Creativ

    19 Kasım 2009
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008
  • Orson Wang

    Orson Wang

    28 EKİM 2006