使用PHP和ajax制作alert()
Making an alert() with PHP and ajax
我有一个ajax函数,它可以向我的PHP文件提交一些数据。在我的PHP文件中,我会检查它是否处理了这些数据,然后我会尝试发出警报来说明一些事情。不过,我无法收到任何警报。所有发生的事情都在控制台->网络->提交。php->响应显示应该发出警报的javascript。
这是我的Ajax,我知道它很有效:
$('#submit').click(function() {
if(selectedImageArray.length <= 10){
$.ajax({
method: "POST",
url: "submit.php",
data: {selectedImageArray: selectedImageArray}
}).done(function( msg ) {
//alert( "Data Saved: " + selectedImageArray );
}); }else{
alert( "You can only trade up to 10 items at once." );
}
});
然后在submit.php中,我做了一些检查,并得到了这个:
if($QueueCount == 1){
Echo '<script language="javascript">';
Echo 'alert( "You already have an active trade, check your Steam profile.");';
echo '</script>';
}else{
Echo '<script language="javascript">';
Echo 'alert("You are currently in the trade Queue, you should receive a trade request soon.");';
echo '</script>';
}
这应该会发出警报,但它只是将<script language="javascript">alert( "You already have an active trade, check your Steam profile.");</script>
输出到网络选项卡中,就像我说的那样。
如何从PHP文件中弹出警报?
如果不在ajax回调中输出javascript,您将无法从php输出javascript。
最简单的方法是用php返回字符串,并将输出处理为javascript。
类似于:
if($QueueCount == 1){
Echo "You already have an active trade, check your Steam profile.";
}else{
Echo "You are currently in the trade Queue, you should receive a trade request soon.";
}
对于javascript
$('#submit').click(function() {
if(selectedImageArray.length <= 10){
$.ajax({
method: "POST",
url: "submit.php",
data: {selectedImageArray: selectedImageArray}
}).done(function( msg ) {
alert(msg);
});
}else{
alert( "You can only trade up to 10 items at once." );
}
});
您的javascript代码必须如下所示:
$('#submit').click(function() {
if(selectedImageArray.length <= 10){
$.ajax({
method: "POST",
url: "submit.php",
data: {selectedImageArray: selectedImageArray},
success: function(data,status){
eval(data)
}
});
}else{
alert( "You can only trade up to 10 items at once." );
}
});
您的php代码不应该声明脚本标记:
if($QueueCount == 1){
echo 'alert( "You already have an active trade, check your Steam profile.");';
}else{
echo 'alert("You are currently in the trade Queue, you should receive a trade request soon.");';
}
请确保这是php文件的唯一输出。
此外,在投入生产之前,这段代码还需要一些改进,例如回调服务器端处理的错误,检查ajax是否完全没有由于网络问题和XSS保护而失败,等等。
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 如何制作简单的php'在Javascript中的foreach等价物
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 我怎样才能制作一个“;reverse preventDefault”;在jQuery中
- 如何在Chartjs中制作整数比例
- 使用node.js制作网站
- 制作一个regex来验证只有一个数字的字符串
- 将插件制作的Javascript包含到html按钮中
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 问题用moment JS制作一个简单的时间表
- 我想用datetimepicker制作相关的时间字段
- 如何制作Connected Modal窗口
- 如何在离子框架+有角度的框架中制作顶部标签
- 如何制作一个特殊的自动减法器
- 制作倒计时钟
- 使用javascript制作图像动画
- 为网络游戏制作动画
- 具体化:如何只使用HTML和Javascript制作播放/暂停按钮
- 如何制作大的自定义社交媒体按钮
- 使用PHP和ajax制作alert()