PHP复选框邮件foreach错误

时间:2012-05-17 14:35:35

标签: php javascript html

我已经制作了一个表单,从xml文件中获取其中复选框的信息。现在我想用php发送该表单,但是我得到了一个“警告:在第8行的mailer.php中为foreach()提供的无效参数”错误。这是我的表单中的复选框部分,用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)+' &nbsp; €'+(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); 

我希望你们中的某个人知道我的代码有什么问题,因为我真的不明白。

提前致谢, Jan Thiemen

1 个答案:

答案 0 :(得分:1)

您目前在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