我需要将锚标签上的文本框值发送到checkID.php并显示从html页面中的php页面发送的响应。我尝试过使用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页面中显示?
答案 0 :(得分:1)
不确定为什么会重定向,但在PHP文件中 -
而不是
return $response;
使用
echo $response;
在ajax个案
中始终使用echo
代替return
答案 1 :(得分:0)
该代码不应重定向到该页面。取消点击操作,看看是否有帮助。
onclick="fillContent('checkID.php');return false"
答案 2 :(得分:-1)
我建议你使用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>