0

我正在 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)的最佳方式是什么?

4

2 回答 2

2

您的 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 代码不显示任何错误或警告消息。

于 2013-06-23T03:31:23.593 回答
1

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

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

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

<script language="JavaScript">
    //...some JS codes here
    <?php echo 'DisplayParameters'; ?>
</script>
于 2013-06-23T03:32:58.537 回答