2012-05-17 2 views
0

Я создал форму, которая получает информацию о флажках в ней из XML-файла. Теперь я хочу отправить эту форму с помощью php, но у меня есть «Предупреждение: неверный аргумент, предоставленный foreach() в ошибке mailer.php on line 8». Вот флажок часть от моей формы, написанный в JavaScript:PHP checkbox mailer foreach error

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

Вы в настоящее время, в вашем 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.