尝试使用jQueryAjax调用PHP文件


Trying to call PHP file using jQuery Ajax

我正在Debian 7.0.0上使用jQuery 2.0.2进行开发。

我正在尝试使用jQuery.ajax从JavaScript文件中调用PHP脚本。我的代码如下。

    jQuery.ajax({
    type: "POST",
    url: "DisplayParameters.php",
    data: { LUT:lut, 
        Brightness: brightness,
        Gamma: gamma,
        Background: background}
    }).done(function( result ) {
    $("#msg").html( " Ajax called" );
    });  

在DisplayParameters.php的开头,我有以下内容。

?>
<script language="JavaScript">
alert('DisplayParameters');
</script>
<?php

但是不调用报警框。Firebug继续进行,没有任何错误,并显示DisplayParameters.php文本(使用+/-控件折叠和展开它)。但没有调用警报框。我无法从DisplayParameters.php获得任何反馈来跟踪正在发生的事情。

对我来说,从DisplayParameters.php获得反馈(如警报框或console.log)的最佳方式是什么?

您的ajax调用以文本形式返回DisplayParameters.php的内容,console.log(result)将显示:
<script language="JavaScript">
alert('DisplayParameters');
</script>

如果你想把这个额外的代码添加到页面上(我不建议你这样做,除非你确信你不会破坏当前页面),你可以尝试:

jQuery.ajax({
    type: "POST",
    url: "DisplayParameters.php",
    data: { LUT:lut, 
        Brightness: brightness,
        Gamma: gamma,
        Background: background}
}).done(function( result ){
    $("#msg").html( " Ajax called" );
    $("body").append(result);
});

另一种方法是序列化(JSON)您需要的信息,设置dataType: "json"选项,并根据这些信息采取行动。

如果您要发送HTML,请确保您的PHP代码不会显示任何错误或警告消息。

在ajax调用中,alert()应该发生在.done()内部。如下所示:

.done(function(result) {
    alert(result);
    $("#msg").html( " Ajax called" );
}); 

使用echo,而不是在DisplayParameters.php上发出警报,因此这将是结果的返回值。如下所示:

<script language="JavaScript">
    //...some JS codes here
    <?php echo 'DisplayParameters'; ?>
</script>