Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中,什么会导致字段返回数组?_Php - Fatal编程技术网

在php中,什么会导致字段返回数组?

在php中,什么会导致字段返回数组?,php,Php,我正在修改一个现有的购物车应用程序,所以我正在摸索这个。使用PHP5和mySql 代码向客户端和用户发送一封电子邮件,显示他们感兴趣的产品。页面正在正确呈现产品和属性。发送电子邮件时,产品部分起作用,但属性不起作用 它应该显示属性,但只有单词“Array” 电子邮件部分发送以下内容: 产品名称:(无论产品是什么) 属性:数组 产品选项名称:(无论产品选项是什么) 此代码用于生成电子邮件中的产品信息: $message.='产品列表”。“\n”; if(is_数组($arr_产品_列表)){ fo

我正在修改一个现有的购物车应用程序,所以我正在摸索这个。使用PHP5和mySql

代码向客户端和用户发送一封电子邮件,显示他们感兴趣的产品。页面正在正确呈现产品和属性。发送电子邮件时,产品部分起作用,但属性不起作用

它应该显示属性,但只有单词“Array”

电子邮件部分发送以下内容:

产品名称:(无论产品是什么)

属性:数组

产品选项名称:(无论产品选项是什么)

此代码用于生成电子邮件中的产品信息:

$message.='

产品列表



”。“\n”; if(is_数组($arr_产品_列表)){ foreach($arr\u产品列表为$value){ $message.=''.$value.
'.“\n”; } }
这是用于在呈现页面上显示产品的代码:

$productsname=$product['productsname'];
$attributes=$product['attributes'];
$products\U options\U name=$value['products\U options\U name'];
$arr_product_list[]=“产品名称:$productsname
”; $arr_product_list[]。=“属性:$Attributes
”; $arr\u product\u list[]。=“产品选项名称:$Products\u Options\u Name
“; $arr_产品列表[]= "---------------------------------------------------------------";
下面是呈现页面上显示的内容,他们应该在其中选择产品和属性:


SPK
模型
SPK-4
我想我真正困惑的地方是,在发送电子邮件的代码中,我看不到什么叫做attrib-14或id14,所以我很难弄清楚这一点

任何帮助都将不胜感激


谢谢

通过在表单名称中使用
xyz[]
,可以将PHP中生成的
xyz
变量转换为数组。它从表单中获取所有
xyz
值,并创建它们的数组

您必须在php中解析数组,例如使用

 foreach($attributes as $field)
  $arr_product_list[] = "$field<br />";
foreach($attributes作为$field)
$arr_product_list[]=“$field
”;
或者对字段使用不同的符号:

<select name="id_14" id="attrib-14">


但是,这样您就必须处理POST输入中有多少
id.*
字段。

似乎产品将其属性存储为一个数组,这是有意义的,因为可以有很多

尝试更改此行:

$arr_product_list[] .= "<strong>Attributes:</strong> $attributes <br />";
$arr\u product\u list[]。=“属性:$Attributes
”;

$arr\u product\u list[]。=“属性:”。加入(“,”,$Attributes)。“
”;
这是页面上显示产品的那一行,它工作正常。正确显示产品和属性。一旦选择了该信息,就无法将其发送到电子邮件中。我想问题出在第一段代码中。我试过了,现在属性是空的。在电子邮件中有单词数组之前,现在什么都没有了。页面仍然正确呈现,但对电子邮件没有帮助。谢谢,但我不想更改所有内容,只想让电子邮件通知正常工作。我的意思是,页面是通过生成的代码呈现的,我甚至不知道它是如何生成的。在第一个代码块中已经有一个foreach。有没有办法修改它并使其工作?
 foreach($attributes as $field)
  $arr_product_list[] = "$field<br />";
<select name="id_14" id="attrib-14">
$arr_product_list[] .= "<strong>Attributes:</strong> $attributes <br />";
$arr_product_list[] .= "<strong>Attributes:</strong>".join(', ', $attributes)."<br />";