我从数组中获取值,这是从jQuery.serialize()
只取一个输入字段。然后我将表单数据发送到sendMail页面。
在电子邮件中显示结果,单词Array
是第一个单词,然后输入的值如下,其余数据显示正常。
我有四个arrays
,并且在每个单词前面出现了Array。
$qty = $_POST['qty'];
foreach($qty as $value)
{
$qty .= $value . "<br>";
}
$desc = $_POST['description'];
foreach($desc as $value)
{
$desc .= $value . "<br>";
}
$options = $_POST['options'];
foreach($options as $value)
{
$options .= $value . "<br>";
}
$price = $_POST['price'];
foreach($price as $value)
{
$price .= $value . "<br>";
}
输入将是数量:1,描述:描述,选项:小,价格:1.99 输出是Array 1,Array description,Array options,Array small。
仅在第一行,其余行都可以。
答案 0 :(得分:2)
你要连接到POST数组,你应该这样做:
$qty = $_POST['qty'];
foreach($qty as $value)
{
$qty2 .= $value . "<br>";
}
echo $qty2;
答案 1 :(得分:1)
代码的每个部分都包含两者的不一致性,假设您将数组作为POST数据,然后将其指定为字符串。
$possible_array = $_POST['possible_array'];
foreach($possible_array as $value)
{
$possible_array .= $value . "<br>"; // < - here you use $possible_array as a string
}
前进的方法应该是将字符串值分配给另一个字符串:
$possible_array = $_POST['possible_array'];
foreach($possible_array as $value)
{
$string .= $value . "<br>"; // < - change to a new string
}
然而,你似乎不太可能在这里实际拥有数组中的POST数据,我猜你发送不同的项目,每个项目都有属性数量,描述等
我认为您希望使用一种解决方案,您可以将产品信息作为二维数组进行迭代(foreach),例如$_POST['products']['qty']
其中products
是一个数组。但为了进一步帮助您,您需要包含POST数据以查看其结构化/序列化。
答案 2 :(得分:0)
这是因为您将每个数组的值附加到数组本身。由于值是字符串,结果也变为字符串。因此,数组将隐式地转换为字符串,从而产生单词“Array”。
可能的解决方案:
$qtyList = implode('<br>' , $_POST['qty']);