gpt4 book ai didi

javascript - Ajax 调用(之前/成功)在 php 文件内不起作用

转载 作者:行者123 更新时间:2023-12-03 09:41:48 26 4
gpt4 key购买 nike

我有一个表单,当单击提交按钮时,它会通过ajax进行调用。这个ajax位于php文件内,因为我需要用数据库中的数据填充一些变量。但我无法使用之前/成功之前的调用。它们只是不起作用,我已经完成了尝试使用 alertconsole.log 返回一些数据的测试,但没有任何反应。有趣的是,如果 ajax 被隔离在一个文件 js 中,它们就可以工作。有人可以帮助我吗?

文件:

<?php

$var = 'abc';

?>

<script type="text/javascript">
$(document).ready(function() {

$('#buy-button').click(function (e){

var abc = '<?php echo $var; ?>';

$.ajax({
type: 'POST',
data: $('#buy-form').serialize(),
url: './ajax/buy_form.php',
dataType: 'json',
before: function(data){
console.log('ok');
},
success: function(data){

},
});
});

});
</script>

HTML:

<form id="buy-form">
<div class="regular large gray">
<div class="content buy-form">
/* some code here */
<div class="item div-button">
<button id="buy-button" class="button anim" type="submit">Comprar</button>
</div>
</div>
</div>
</form>

<强>----编辑----

问题解决了!错误发生在 ajax 之前。正确的术语是 beforeSend 而不是 before。谢谢大家的帮助。

最佳答案

您说这是一个提交按钮,并且您没有取消默认操作,因此它将提交回表单。您需要阻止这种情况发生。

$('#buy-button').click(function (e){
e.preventDefault();
/* rest of code */

现在要弄清楚为什么它没有调用成功

        $.ajax({  
type: 'POST',
data: $('#buy-form').serialize(),
url: './ajax/buy_form.php',
dataType: 'json',
before: function(data){
console.log('ok');
},
success: function(data){

},
error : function() { console.log(arguments); } /* debug why */
});
});

我的猜测是您从服务器返回的不是有效的 JSON,它会引发解析错误。

关于javascript - Ajax 调用(之前/成功)在 php 文件内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162733/

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