我已经制作了一个表单,从 xml 文件中获取其中复选框的信息。现在我想用 php 邮寄该表单,但我在第 8 行收到"警告:邮件中为 foreach(( 提供的参数无效.php第 8 行"错误。这是我表单的复选框部分,用javascript编写:
if (window.XMLHttpRequest)
{// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","dehoek.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
x=xmlDoc.getElementsByTagName("product");
for (var i=0;i<x.length;i++)
{
document.write('<input name="check[]" id="checkbox'+i+'" type="checkbox" value="'+(x[i].getElementsByTagName("naam")[0].childNodes[0].nodeValue)+'" /><label for="checkbox'+i+'">'+(x[i].getElementsByTagName("naam")[0].childNodes[0].nodeValue)+' €'+(x[i].getElementsByTagName("prijs")[0].childNodes[0].nodeValue)+' </label>');
}
这是我的 php:
$aan = $_POST['to'];
$onderwerp = "Bestelling";
$naam = $_POST['naam'];
$email = $_POST['email'];
$message = "Producten:";
foreach($_POST['check'] as $value) {
$check_msg .= "$value'n";
}
$body = "From: $naam'n E-Mail: $email'n Message:'n $message'n $check_msg";
echo "Uw bestelling is succesvol verstuurd.";
mail($aan, $onderwerp, $body);
我希望你们中的某个人知道我的代码出了什么问题,因为我真的不明白。
提前感谢,扬·蒂门
您目前在 PHP 脚本中尝试读取$_POST
:
foreach($_POST['check'] as $value)
但是您的页面正在使用HTTP GET方法请求:
xmlhttp.open("GET","dehoek.xml",false);
因此,没有$_POST['check']
这样的东西 - 因为$_POST
只包含使用HTTP POST而不是GET请求页面的数据。
如果您使用 和 HTTP GET 请求您的页面,则必须在 PHP 脚本中从 $_GET
读取,而不是$_POST
。