我有一个AJAX函数,它将数据POST到PHP处理程序。我回想起成功"或者"失败"从PHP确定它是否按预期完成。不幸的是,我不熟悉JS / AJAX,也很难找到能回答我问题的文档。
我是否需要对响应进行JSON编码?我只在我的AJAX函数中检查.done(),我是否也应检查成功并失败?尽管PHP处理程序中的功能没有问题,但我的.done()内部的代码(它只是一个警告框)并不起作用。
JS / AJAX:
<script type="text/javascript">
function powerSignal(device, signal)
{
var cfm = confirm("Do you wish to ___ the server?");
if (cfm==true)
{
$.ajax({ type: "POST", url: "https://domain.net/modules/power_functions.php", data: { device: device, 'power_signal': signal }}).done(function(result)
{
alert("success!");
});
}
}
</script>
PHP:
if ( isset($_POST["device"]) && isset($_POST["power_signal"]) )
{
$deviceid = $_POST["device"];
$signal = $_POST["power_signal"];
//API: Get Device Inventory
$url = 'http://domain.net/dp/api/set_device_power_status';
$fields = array('deviceid' => urlencode($deviceid), 'power_signal' => urlencode($signal));
$result = curl_get($url, $fields);
$json = json_decode($result);
$status = $json->{'status'};
if ($status == "success")
{
echo "success";
}
echo "failed";
}
答案 0 :(得分:0)
result
变量的内容将是服务器发回的内容,您必须对其进行测试:
$.ajax({ type: "POST", url: "https://domain.net/modules/power_functions.php", data: { device: device, 'power_signal': signal }}).done(function(result)
{
if(result=='success'){
alert("success!");
}else{
alert("failure!");
});
要回答下面的评论,以下是我在当前项目中使用简单的get请求的方式:
$.get( "/getResult/"+data, function( results ) {
$('.popin_content').html('<p>Vos documents ont bien été créés :</p><br/><ul><li><a href="/getPDF/'+results+'">Plan PDF</a></li><li>Devis PDF</li></ul>');
});