PHP 复选框邮件程序为每个错误

PHP checkbox mailer foreach error

本文关键字:错误 程序 复选框 PHP      更新时间:2023-09-26

我已经制作了一个表单,从 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)+' &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); 

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

提前感谢,扬·蒂门

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