На странице Issue.php, как сказал Крис, вы можете определить, является ли запрос ajax или нет, с помощью заголовка или вы также можете сделать это, отправив параметр get 'ajaxRequest = 1'. И когда в $ _GET задано «ajaxRequest», вам нужно отобразить только объект json и выйти.
Ваш файл issue.php будет выглядеть примерно так
if(!empty($_GET["ajaxRequest"])) {
$data = array();
..... your code to get insert values in $data ....
..... add $data["isDoner"] = YOUR VALUE .....
..... add $data["donors"] = YOUR ARRAY .....
echo json_encode($data);
exit();
}
Помните, что когда вы отправляете ajax-запрос, весь ваш php-код запускается на сервере и любые данные, которые вы выводите на экран, или любые данные, которые вы пишете вне блоков php ( <? Php </strong> ?> ), будет получен браузером, доступ к которому можно получить через «request.responseText», где запрос - это объект XMLHttpRequest.
Ваш JS должен выглядеть следующим образом
var params = "Bloodtype=" + encodeURIComponent(Bloodtype) + "&ajaxRequest=1";
var url = "issue.php?" +params;
var request = new XMLHttpRequest();
request.open("POST", url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onreadystatechange = function()
{
if(request.readyState == 4 && request.status == 200)
{
checkDoner(request.responseText);
}
}
request.send(params);
function checkDoner(response)
{
var isDoner = null, donors=null;
try {
response = JSON.parse(response);
isDoner = response.isDoner;
donors = response.donors;
}
catch(e){ }
if(isDoner == null)
{
console.log("In isDoner 1");
document.getElementById('positiveAnswer').style.display = 'none';
document.getElementById('negativeAnswer').style.display = 'none';
}
else if(isDoner == '0'){
console.log("In isDoner 2,DONER :" + isDoner);
document.getElementById('negativeAnswer').style.display = 'block';
}
else if(isDoner == '1'){
console.log("In isDoner 3");
document.getElementById("pName").innerHTML = donors.Name;
//$doners array is initiated to null and gets values after post
document.getElementById("pId").innerHTML = donors.Id;
document.getElementById("pBloodtype").innerHTML = donors.Bloodtype;
//document.getElementById("pName").innerHTML = donors.Name;
//document.getElementById("pId").innerHTML = donors.Id;
//I tried both ways
document.getElementById('positiveAnswer').style.display = 'block';
}
}