2012-04-22 2 views
1

Простите упрощенный вопрос. Я хотел бы передать переменную от javascript к php, и я понимаю, что это можно сделать с объектом xmlhttprequest. Поэтому я построил тестовый скрипт, чтобы выяснить, как это сделать.Не удается получить метод отправки xmlhttprequest для работы

Я использую XAMPP, и я поместил следующие файлы, main.php и test.php в соответствующее место в папке htdocs.

main.php пытается передать переменную test.php с помощью xmlhttprequest. test.php просто перефразирует переменную. Затем я попытаюсь отобразить эхо-результат в main.php.

Когда я загружаю main.php в браузере и просматриваю исходный код, я ожидаю, что переменная будет эхом. Вместо этого я вижу сообщение об ошибке, что переменная, которая должна была быть передана test.php, не определена.

Любая помощь была бы наиболее желанной.

<html> 
    <head> 
    <title>Main</title> 

    <script type="text/javascript" src="../scripts/jquery-1.7.1.min.js"></script> 

    <script language="javascript" type="text/javascript"> 

    $(document).ready(function() { 

     xmlhttp=new XMLHttpRequest(); 

     xmlhttp.open("GET","test.php?var1=hello", true); 
     xmlhttp.send(null); 

     <?php include("test.php"); ?> 

    }); 

    </script> 

</head> 
<body></body> 
</html> 

Вот код в test.php, который находится в той же папке, main.php

<?php 
$name=$_GET['var1']; 
echo $name; 
?> 

ответ

0

Я считаю, вы запускаете запрос в асинхронном режиме, поэтому проверьте готовое изменение состояния :

xmlhttp=new XMLHttpRequest(); 

xmlhttp.open("GET","test.php?var1=hello", true); 
xmlhttp.send(null); 

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
    alert(xmlhttp.responseText) 
} 
+0

Ничего себе, спасибо за быстрый ответ. К сожалению, это не сработало. Когда я загружаю main.php и просматриваемый источник, я вижу следующую ошибку. Примечание: Undefined индекс: var1 в C: \ XAMPP \ HTDOCS \ тестовую страницу \ PHP \ test.php на линии
syd

+0

Я проверил, что мой сервер Apache работает. – syd

+0

Я действительно не знаю php, но знаю, что вы не можете загрузить сценарий test.php, прежде чем вы вызовете метод GET в запросе AJAX. Почему вы включаете его, если используете ajax для его вызова? –

0

я заметил, что она выглядит, как вы используете JQuery (если это Шипение, игнорировать остальную часть этого), так что вам не нужно использовать это! В jQuery встроены методы Ajax, которые значительно упрощают его!

$.ajax({ 
    url:"test.php", 
    method:"get", 
    data:{ 
      var1:"hello" 
     } 
}).done(function(data){ 
    alert(data); 
}); 

Создает XMLHttpRequest и отправит его.

Смежные вопросы