Мне нужно отправить значение текстового поля на тег привязки, щелкнув checkID.php, и отобразить ответ, отправленный с php-страницы на странице html. Я пробовал использовать javascripts. Но страница перенаправляется на страницу checkID.php. необходимо отобразить на той же самой странице html.
<a href="#" onclick="javascript:fillContent('checkID.php'); ">
Check Availability
</a>
В форме действия я описал как checkID.php. Ниже приведен javascript, который я использовал
<script language="javascript">
function fillContent(resource)
{
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", resource, true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4) {
el = document.getElementById('availabilityResponse')
el.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
</script>
ниже мой PHP-код
<?php
require_once('lib/nusoap.php');
$client=new nusoap_client("http://localhost/server.php?wsdl");
$error = $client->getError();
if ($error) {
return $error;
}
$alias=$_POST['id'];
$response = $client->call("checkAvailability", array("id" => $alias));
if($client->fault)
{
return $client->faultstring;
}
else
{
$error = $client->getError();
if ($error) {
return $error;
}
else {
return $response;
}
}
?>
как получить ответ и отобразить на странице html?
Не уверен, почему его перенаправление, но в вашем PHP файле -
Вместо
return $response;
использование
echo $response;
Всегда используйте echo
вместо return
в случаях ajax
Этот код не должен перенаправляться на эту страницу. Отмените действие click и посмотрите, поможет ли это.
onclick="fillContent('checkID.php');return false"
Я предлагаю вам использовать jquery. Это очень просто
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$("#myID").on("click",function(){
$.ajax({ url: 'checkID.php',
type: 'post',
success: function(output) {
$("#availabilityResponse").html(output);
}
});
})
</script>
</head>
<body>
<a href="javascript:;" id="myID" ">Check Availability</a>
</body>
</html>