Offset Başlatılmamış dizi

2 Cevap php

Ben alanlarda bir dizi ile bir form oluşturmak için PHP kullanıyorum. Temelde forma 'insan' sınırsız sayıda ekleyebilirsiniz ve her kişi ilk adı, soyadı ve telefon numarası vardır. Form sadece ilk kişi için bir telefon numarası eklemek gerektirir. Eğer herhangi başkalarına telefon numarası alanı boş bırakırsanız, işleyici dosyanın ilk kişi telefon numarasını kullanmak için programlanmış olması gerekiyordu.

Yani, benim alanları şunlardır:

person[] - Bu kişinin birincil anahtar değerine sahip bir gizli alan.

fname[] - Bir giriş alanı

lname[] - Bir giriş alanı

phone[] - Bir giriş alanı

Benim form işleyici bu gibi görünüyor:

$people = $_POST['person']
$counter = 0;

foreach($people as $person):
    if($phone[$counter] == '') {
    // use $phone[0]'s phone number
    } else {
    // use $phone[$counter] number
    }
    $counter = $counter + 1;
endforeach;

PHP olsa, bana bir atıyor bu sevmiyor

Notice: Uninitialized string offset error.  

Ben insanlar, fname, lname ve telefon is_array işlevini çalıştırarak ayıklanmış ve bir dizi olmanın true döndürür. Ayrıca el [2], vb $ telefon echo ve doğru değeri alabilirsiniz. Ben de $ sayaç değişkeni üzerinde is_int koştu ettik ve doğru döndü, böylece amaçlanan Bu neden çalışmıyor emin değilim?

Herhangi bir yardım büyük olurdu!

2 Cevap

I phone[$counter] olmalıdır eminim $phone[$counter]. Aksi takdirde bir dize olarak "telefon" tedavi edecek.

Lütfen $ _POST değerini var_dump ve neler oluyor görmek. Dizi indicies muhtemelen bekliyorsanız ne ayarlanmamış.