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