2010-05-24 55 views
0

我正在使用PHP創建帶有數組字段的表單。基本上,您可以在表單中添加無限數量的「人員」,每個人都有名字,姓氏和電話號碼。該表格要求您只爲第一個人添加電話號碼。如果您將電話號碼字段保留爲空白,處理程序文件應該被編程爲使用第一個人的電話號碼。未初始化的數組偏移量

所以,我的領域是:

person[] - 與此人的主鍵的值的隱藏字段。

fname[] - 輸入字段

lname[] - 輸入字段

phone[] - 輸入字段

我的表單處理程序是這樣的:

$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不喜歡這雖然,它是扔我

Notice: Uninitialized string offset error. 

我通過在people,fname,lname和phone上運行is_array函數來調試它,它返回true作爲一個數組。我也可以手動回顯$ phone [2]等,並獲得正確的值。我也在$ counter變量上運行了is_int,並且它返回了true,所以我不確定爲什麼它不能按預期工作?

任何幫助將是偉大的!

+1

你的if(電話[...應該是如果($電話[...我推測? – 2010-05-24 07:02:08

+0

垃圾,感謝您的反饋,在我的代碼中是'$ phone'...抱歉,謝謝! – kimmothy16 2010-05-24 10:07:20

回答

8

我很確定phone[$counter]應該是$phone[$counter]。否則,它會將「phone」視爲一個字符串。

0

var_dump您的$ _POST值,看看發生了什麼。數組顯示可能沒有設置爲您所期望的。