gpt4 book ai didi

php - AJAX POST 处理程序导致 "uncaught exception"

转载 作者:可可西里 更新时间:2023-10-31 22:10:26 26 4
gpt4 key购买 nike

所以我在这个问题上已经用头撞了几个小时了,但我一无所获,所以非常感谢您的帮助。

下面的代码有两个 jquery 事件处理程序,它们触发 ajax 请求。第一个使用 GET,它从服务器返回的数据是 JSON 编码的——它工作正常。第二个(“button#addTx”)返回导致 Firebug 产生此错误:

uncaught exception: [Exception... "prompt aborted by user" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt :: line 468" data: no]

Line 0

这根本没有帮助。服务器端脚本将原始 html 打印到屏幕上,目的是使用 jquery html 替换来更新发起请求的页面。数据在数据库更新时正确发布,但除此之外我一无所知。我重写了它以尝试 GET 并仍然产生相同的错误:-(

帮助会很棒 - 谢谢你,西蒙

$(document).ready(function(){
$("button.delete").click(function(){
var txid = this.id;
var amountID = "#amount" + txid;
var amount = $(amountID).html();
// <![CDATA[

var url = "delete.php?txid=" + txid + "&am=" + amount;
$.ajax({
type: "GET",
url: url,
success: function(msg){
txid = "ul#" + txid;
$(txid).hide();

var values = msg;
var e = "#" + values.category + "AmountLeft";
var a = values.amount;

$(e).html(a);
}
});
});
$("button#addTx").click(function(){

// <![CDATA[


var url = "addTran.php";
//var dataV = var data = "category=" + document.getElementById("category").value + "&what=" + document.getElementById("what").value + "&amount=" + document.getElementById("amount").value + "&date=" + document.getElementById("date").value;
$.ajax({
type: "POST",
url: "addTran.php",
//async: false,
data: "category=Groceries&what=Food&amount=2.33&date=2/3/2011",
success: function(msg){
$("transList").replaceWith(msg);
}
});
});
});

这是服务器端脚本

<?php
session_start();
include('functions.php');
//if the user has not logged in
if(!isLoggedIn())
{
header('Location: index.php');
die();
}


$category = $_POST['category'];
$what = $_POST['what'];
$amount = $_POST['amount'];
$date = $_POST['date'];

$category = mysql_real_escape_string($category);
$what = mysql_real_escape_string($what);
$amount = mysql_real_escape_string($amount);
$date = mysql_real_escape_string($date);

$date = convertDate($date);

//add trans to db
include('dbcon.php');
$query = "INSERT INTO transactions ( category, what, amount, date) VALUES ( '$category','$what','$amount','$date');";
mysql_query($query);

//grab the remaining amount from that budget
$query = "SELECT amount_left FROM cards WHERE category = '$category';";
$result = mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$oldAmountLeft = $row["amount_left"];

//update the amount left
$amountLeft = $oldAmountLeft - $amount;

mysql_free_result($result);

//add new value to db
$query = "UPDATE cards SET amount_left = '$amountLeft' WHERE category = '$category';";
mysql_query($query);



//generate the list of remaining transactions, print to screen to send back to main page

$query = "SELECT txid, what, amount, date FROM transactions WHERE category = ('$category');";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$d = convertDateReverse($row["date"]);
$what = $row["what"];
$amount = $row["amount"];
$txid = $row["txid"];
?>
<li><ul class="trans" id="<? echo $txid; ?>"><li class="date"><? echo $d; ?></li><li class="what"><? echo $what; ?></li><li class="amount" id="amount<? echo $txid; ?>"><? echo $amount; ?></li><button class="delete" id="<? echo $txid; ?>">Delete</button><li></li></ul></li>
<?
}
mysql_free_result($result);



mysql_close();

header("Content-type: application/x-www-form-urlencoded"); //do I need this? I have a " header("Content-type: application/json"); " in the working one

?>

最佳答案

问题已解决:因此在 html 标记中,保存数据字段的表单应该有一个

onsubmit="return false;"

在里面!

感谢大家的帮助,我已经实现了你们的所有建议,我的代码现在变得更小了,也更容易管理了!

干杯

西蒙

关于php - AJAX POST 处理程序导致 "uncaught exception",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545577/

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