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

  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013