我正在使用Ajax从表单向php文件发送请求。我想从这个php文件中收到一个结果。
这是我的代码:
<script type="text/javascript">
jQuery(document).ready(function($){
$('#devis_gratuit').submit(function(e){
e.preventDefault();
$.getJSON(
'mail.php', {
prestation: $('.prestation-input').val(),
heures: $('.heures-input').val(),
nom: $('.nom-input').val(),
ville: $('.ville-input').val(),
prenom: $('.prenom-type').val(),
code_postal: $('.code_postal-input').val(),
tel: $('.tel-input').val(),
email: $('.email-status').val()},
function(data){
alert("A"); //Doesn't work
$('#status').hide();
$('#status').html('')
.append('<b>Paramètre en majuscule</b> : '+data.response+'<br/>');
$('#status').fadeIn();
}
);
});
});
</script>
和我的php代码 mail.php :
if(isset($_GET['prestation'])
&& isset($_GET['heures'])
&& isset($_GET['nom'])
&& isset($_GET['prenom'])
&& isset($_GET['ville'])
&& isset($_GET['code_postal'])
&& isset($_GET['tel'])
&& isset($_GET['email']))
{
$response = "Ok";
die($response); //Doesn't work
}
else {
$response = "Ko";
die($response); //Doesn't work
}
$return = array('response' => $response);
header('Content-type: application/json');
但看起来它没有上传PHP文件,我在firebug上看到请求已成功发送。有什么帮助吗?谢谢。
答案 0 :(得分:0)
如果在PHP中使用die()
,则会向客户端返回500响应代码。因此,您永远不会在success
代码中输入匿名getJSON
功能。
换句话说,要在以下代码段中获取警报,您需要返回成功的响应代码(2xx):
$.getJSON(
'mail.php',
{...},
function(data){
alert("A");
...
}
);
答案 1 :(得分:0)
只需移除die
并使用json_encode($return);
,然后再次检查,因为您的回复应采用json
格式。
答案 2 :(得分:0)
您没有从服务器获取json格式。
只需更改
$response = "Ok";
die($response);
到
$response[] = "Ok";
echo json_encode($response);