2013-05-31 1 views
2

Этот тест ajax должен (по желанию около 2 часов) вернуть результат запроса в текстовое поле. Запрос делается на той же странице, и у меня есть тест $ _POST isset в верхней части тела, чтобы проверить, поступает ли запрос от моего запроса POST (мне нужно, чтобы весь код был в одном файле). В результате «текст, появляющийся в поле textarea» возвращается сам по себе и не помещается внутри текстового поля.Ajax возвращает результат запроса на весь экран, а не в обозначенное текстовое поле

//name of this page is testing.php 

<html> 
<head> 
function loadXMLDoc() 
{ 
var xmlhttp; 

xmlhttp=new XMLHttpRequest(); 

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("testTextarea").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.open("POST","testing.php",true); 
xmlhttp.send("test"); 
} 

</head> 

<? 
if (isset($_POST["testName"])) { 
die("text to appear in the textarea box"); 
} 
?> 

<body> 


<form action="testing.php" method="POST" onsubmit="loadXMLDoc(this.form); return false;"> 
<input class="command" type="text" name="testName" /> 
<div><textarea id="testTextarea"></textarea></div> 


</body> 
</html> 
+0

Mostlikely Вы состоите яваскрипт ошибки в 'onsubmit =" loadXMLDoc (this.form); return false; ", а затем' loadXMLDoc (this.form); '. Из-за этого «return false» не запускается, и форма отправляется обычным способом. Проверьте консоль ошибок, чтобы узнать, что происходит. На первый взгляд я бы сказал, что 'this.form' должен быть просто' this', потому что это уже форма. Но также может быть ошибка в самой функции. –

+0

Временная метка: 31/05/2012 21:49:42 Ошибка: InvalidStateError: Была сделана попытка использовать объект, который больше не используется или не используется, Исходный файл: http: // localhost: 8082/testing. php Строка: 19 – user1166981

+0

, даже если я удалю действие формы, его же результат – user1166981

ответ

2

Попробуйте переместить кубик() к вершине, так что ничего не выводятся, прежде чем фильеры()

<? 
if (isset($_POST["testName"])) { 
die("text to appear in the textarea box"); 
} 
?> 

<html> 
<head> 
<script> 
function loadXMLDoc() 
{ 
var xmlhttp; 

xmlhttp=new XMLHttpRequest(); 

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("testTextarea").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("POST","testing.php",true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.send("testName=blah"); 
} 
</script> 

</head> 

<body> 


<form action="testing.php" method="POST" onsubmit="loadXMLDoc(this.form); return false;"> 
<input class="command" type="text" name="testName" /> 
<div><textarea id="testTextarea"></textarea></div> 
</form> 

</body> 
</html> 
+0

did not work, тот же результат – user1166981

+1

well $ _POST ["testName"] не установлен, потому что вы отправляете только «тест». Вам нужно сделать xmlhttp.send ("testName = blah"); – Curtis

+0

попробовал, но все тот же результат. – user1166981

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