我使用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,所以我不确定为什么这不按预期工作?
任何帮助都会很棒!
答案 0 :(得分:8)
我非常确定phone[$counter]
应为$phone[$counter]
。否则它会将“电话”视为字符串。
答案 1 :(得分:0)
var_dump你的$ _POST值,看看发生了什么。阵列标记可能未设置为您所期望的值。