我在发布信息以创建订单和发票时遇到问题。在其他变量中,有客户信息和其他东西,我创建了一个是一个看起来像这样的关联数组。
您好,感谢您的帮助,建议多位用户,如果我print_r($_POST)
这就是结果:
Array (
[clientName] => Client inc
[clientTaxid] => 00000000000
[clientAdress] => 1234 Main RD
[clientAdress2] => City
[clientAdress3] => State
[clientZipCode] => 53370
[purchase] => Array (
[0] => Array (
['qty'] => 1
['code'] => 1234
['description'] => Product 1
['price'] => 1
['tax'] => .16
)
[1] => Array (
['qty'] => 1
['code'] => 3456
['description'] => Product 2
['price'] => 3
['tax'] => .04
)
[2] => Array (
['qty'] => 1
['code'] => 6789
['description'] => Product 3
['price'] => 5
['tax'] => 0.0
)
)
)
但是当我尝试使用foreach遍历数组时,我无法访问存储的值。
foreach($_POST['purchase'] AS $pc){
var_dump($pc);
echo $pc['qty'];
echo $pc['price'];
echo $pc['code'];
}
var_dump($_POST['purchase'][0]['description']);
我只是空白而没有任何错误。我是否从表单中创建了错误的数组?有什么建议?我可能工作太久而且卡住了。 我按照建议尝试了var_dump,这就是结果:
array(5) {
["'qty'"]=> string(1) "1"
["'code'"]=> string(4) "1234"
["'description'"]=> string(3) "foo"
["'price'"]=> string(1) "1"
["'tax'"]=> string(3) ".16"
}
array(5) {
["'qty'"]=> string(1) "1"
["'code'"]=> string(4) "3456"
["'description'"]=> string(3) "foo"
["'price'"]=> string(1) "3"
["'tax'"]=> string(3) ".04"
}
array(5) {
["'qty'"]=> string(1) "1"
["'code'"]=> string(4) "1234"
["'description'"]=> string(3) "foo"
["'price'"]=> string(2) "25"
["'tax'"]=> string(3) ".16"
}
NULL
答案 0 :(得分:0)
在HTML表单input / textarea error: could not find or load main class hello.main
属性中定义数组键名时,不应在任何部分使用引号。
name
这看起来是您的问题的症状,在我看来,您的表格数据包含array(5) {
["'qty'"]=> string(1) "1"
["'code'"]=> string(4) "1234"
["'description'"]=> string(3) "foo"
["'price'"]=> string(1) "1"
["'tax'"]=> string(3) ".16"
}
定义形式的引号。
您需要澄清您的输入名称是:
name
<强> 不是的强>:
<input name="purchase[0][qty]" value="5">
或者一些类似的错误语法。您的问题最终是由PHP查找数组值<input name="purchase[0]['qty']" value="5"> <!-- should not be used this way -->
引起的,但您已将数组值设置为qty
。你能看到区别么?
编辑:您使用哪种报价类型并不重要,只需使用一个!