【发布时间】:2014-08-16 08:29:01
【问题描述】:
这似乎是一个新手问题,但我在这里遇到了困难。
我有一个来自通过 jquery 发布的表单的 post 值数组,$_POST["extra"] 数组是通过 .serialize() 格式化的。
string(1) "0"
["tax"]=>string(1) "0"
["taxRate"]=>string(1) "0"
["itemCount"]=>string(1) "3"
["item_name_1"]=>string(17) "Detox Diet 1234®"
["item_quantity_1"]=>string(1) "2"
["item_price_1"]=>string(5) "32.95"
["item_options_1"]=>string(56) "thumb: /cb2014-II/img/products/DetoxDiet1234.jpg, pid: 3"
["item_name_2"]=>string(12) "Fiber 1234®"
["item_quantity_2"]=>string(1) "1"
["item_price_2"]=>string(2) "55"
["item_options_2"]=>string(52) "thumb: /cb2014-II/img/products/Fiber1234.jpg, pid: 4"
["item_name_3"]=>string(10) "eAc 1234®"
["item_quantity_3"]=>string(1) "2"
["item_price_3"]=>string(5) "42.95"
["item_options_3"]=>string(40) "pid: 27, thumb: img/products/eAC1234.jpg"
["extra"]=>string(465) "x_first_name=value&x_last_name=value&phone=xxx-xxx-xxxx&fax=&email=first.last%40domain.com&company=company&ccnumber=xxxxxxxxxxx&expMo=1&expYr=2016&cvv=&address1=address one&address2=&city=city&state=UT&zip=xxxxx&country=USA&addressee_firstName=&addressee_lastName=&shipping_address1=&shipping_address2=&shipping_city=&shipping_state=&shipping_zip=&shipping_country=&checkoutConfirm=1&x_amount=xx.xx&num_units=3&x_test_request=yes"
["testItem"]=>string(9) "test Item"
["check_out"]=>string(3) "Yes"
}
访问“extra”内的发布值是正确的语法$newVar = $_POST['extra']['num_units']?
因为似乎打印到我屏幕上的值是第一个“额外”字段名称的第一个字符,所以我没有使用循环来获取值,只是在清理后尝试在本地设置。
我的解决方案:
parse_str($extra,$extraFields);
不,我可以访问 $extraFields['x_first_name'] 之类的值
【问题讨论】:
-
没有。
$_POST['extra']只是一个长字符串。尚未提取单个键 = 值对。您需要parse_str()那个字符串,它会将键/值对提取到它们自己的数组中。 -
感谢@MarcB 在这里进行了一些研究:[link]w3schools.com/php/func_string_parse_str.asp[/link] 我能够让它工作。我将我的解决方案发布为对原始问题的编辑
-
w3fools 不是“研究”。这只是谷歌的第一个结果。如果您必须查找有关 php 函数的信息,请转到
http://php.net/name_of_function -
不管怎样,它都能给我正确的方法来使用你建议的功能。谢谢
-
+1 获取信息