在php中发送数据数组以显示在电子邮件中

时间:2014-04-15 19:24:39

标签: php url

我有一个接受数据数组的申请表。数据存储在DB上有效,但是当我尝试将整个数据存入我的电子邮件地址时。只需保存详细信息,如姓名,电话号码,地址等详细信息。存储在数组中的多个级别的数据不会显示在电子邮件中,而是显示为" array"。

if (isset($_POST["Submit"]))
        { 

            $datetime = $_POST["datetime"];
            $name = $_POST["name"];
            $dept = $_POST["dept"];
            $email = $_POST["email"];
            $phone = $_POST["phone"];
            $comments = $_POST["comments"];

            $cnt = count($_POST['model']);
            for($i=0;$i<$cnt;$i++){             
            $model = $_POST["model"][$i];
            $tag = $_POST["tag"][$i];
            $itemdesc = $_POST["itemdesc"][$i];

            $Query = "INSERT INTO ssubmit (datetime, name, dept, email, phone, comments, model, outag, itemdesc) VALUES (NULL, '$name', '$dept', '$email', '$phone',  '$comments', '$model', '$tag', '$itemdesc')";
            $Result = mysql_query($Query, $Link) or die(mysql_error());
       }

//用于检索值的PHP代码

foreach($_POST as $var => $value)

{

echo $var . ': <b>' . $value . "</b> \r\n";

}

2 个答案:

答案 0 :(得分:1)

您可以循环遍历数组的值以输出数据,类似于您对数据库insert所做的操作。

如果您的数组不是多维的,请尝试使用PHP的implode()来连接数组中的字符串:

foreach($_POST as $var => $value) {

    // if this value is an array, implode it to a string
    if (is_array($value)) { $value = implode(", ",$value); }

    // output this var/value pair
    echo "<p>".$var.": <strong>".$value."</strong></p>";

}

WORKING EXAMPLE

答案 1 :(得分:0)

不要自己构建输出,而是使用var_exportprint_r。这样,一切都会输出,你不必担心阵列最终会有多深。

输出到浏览器:

echo '<pre>';
print_r($_POST);
echo '</pre>';

存储在变量中:

$message = '<pre>';
$message .= print_r($_POST, true); // Notice that true is being passed as the second argument
$message .= '</pre>';