2012-05-17 38 views
0

我已經做了一個表單,它從xml文件中獲取其中的複選框的信息。現在我想用PHP發送這個表單,但是我得到了一個「警告:爲第8行的mailer.php中的foreach()提供的無效參數」錯誤。這裏的複選框部分關閉我的形式,用JavaScript編寫的:PHP的複選框郵件程序的foreach錯誤

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); 

我希望你的人知道什麼是錯我的代碼,因爲我真的不明白它。

由於提前, 揚Thiemen

回答

1

您目前,在你的PHP腳本,試圖從$_POST閱讀:

foreach($_POST['check'] as $value) 

但是你的頁面使用HTTP GET方法請求:

xmlhttp.open("GET","dehoek.xml",false); 

所以,沒有這樣的東西$_POST['check'] - 作爲$_POST只有c在請求頁面時使用HTTP POST而不是GET獲取數據。


如果您在使用請求您的頁面和HTTP GET,必須在你的PHP腳本,從$_GET,而不是$_POST讀取。