2010-05-24 99 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值,看看发生了什么。数组显示可能没有设置为您所期望的。