gpt4 book ai didi

javascript - Ajax |使用警报();其他文件中的函数不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 15:29:05 24 4
gpt4 key购买 nike

我正在研究 Ajax,并且仍在学习如何正确使用它。我想知道为什么在 Ajaxalert(); 的一侧有效,但在另一边 - 不行。

这是非常基本的代码:

$('.naudoti_papildus_visiems').click(function() {
var n;

$.post('/ajax/naudoti_papildus_visiems.php', { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;

$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',

type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}
}, 'json');
});

“naudoti_papildus_visiems.php”内容:

<script>alert(9);</script>

我测试了一件事:使用alert(); Ajax 中的函数,它可以工作:

$('.naudoti_papildus_visiems').click(function() {
var n;

$.post('/ajax/naudoti_papildus_visiems.php', { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;

alert(9); // works

$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',

type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}
}, 'json');
});

Chrome 控制台未显示任何错误。任何帮助将不胜感激。

loelsonk: 仍然不起作用。我做错了什么吗?

    $('.naudoti_papildus_visiems').click(function() {
var n;

$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
dataType : 'json',
data: { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
success: function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;

$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',

type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}

$('#data').html(data);
}
});
});

最佳答案

如果你想执行你提到的js代码<script>alert(9);</script>从您的请求响应将其附加到 #temp容器。

首先创建#temp我们附加响应的容器:

<div id="temp"></div>

而不是 $.post我们使用$.ajax .

$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
data: { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
success: function(response) {
// Do whatever you want here

// response contains js code to be executed
// Now your code gets executed
$('#temp').html(response);
}
})
<小时/>

编辑:

这是一个小工作示例,向您展示它是如何工作的:

我们有两个文件:

文件 1:index.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
body {
padding-left: 250px;
}
#temp {
border: 2px solid #000;
padding: 20px;
width: 300px;
min-height: 200px;
}
</style>
</head>
<body>
<div>
<h1>Ajax</h1>
<button id="button" type="button">Perform ajax</button>

<div id="temp"></div>
</div>

<script>
$('#button').click(function(e) {
$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
data: { status : 1, fermos_id : 888, gyvulio_tipas : 'some_type' },
success: function(response) {
// Do whatever you want here

// response contains js code to be executed
// Now your code gets executed
$('#temp').html(response);
}
});
});
</script>
</body>
</html>

文件 2:/ajax/naudoti_papildus_visiems.php(文件位于 ajax 目录内)

<?php

echo 'test';
echo '<script>alert(9);</script>';

看看它是如何工作的:

关于javascript - Ajax |使用警报();其他文件中的函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com