好吧,我会简短。我有这个脚本将值放在数据库中。它可以在Chrome,Safari中完美运行,但不能使其在Firefox或IE中运行。似乎数据甚至都没有发布到.php文件中,而ajax根本没有启动。有人吗
这是我的jQuery脚本:
$(document).ready(function(){ $("#dodaj").click(function(){ event.preventDefault(); var kategorija = $("#kategorija option:selected").val(); var si = $("#si").val(); var hu = $("#hu").val(); var de = $("#de").val(); var an = $("#an").val(); var hr = $("#hr").val(); $.ajax({ type: "POST", url: "dodaj_v_bazo.php", data: {"kategorija": kategorija, "si": si, "hu": hu, "de": de, "an": an, "hr": hr}, success: function(data){ alert( "Jed uspešno dodana."+data); }, }); return false; }); });
这是我的php文件中的内容:
$kategorija = $_POST['kategorija']; $si = $_POST['si']; $hu = $_POST['hu']; $de = $_POST['de']; $an = $_POST['an']; $hr = $_POST['hr']; $dodaj_v_bazo = "INSERT INTO jedi (kategorija, si, hu, de, an ,hr) VALUES ('$kategorija', '$si', '$hu', '$de', '$an', '$hr')"; mysql_query($dodaj_v_bazo) or die(mysql_error());
您没有event将事件处理程序定义为参数,因此在
event
event.preventDefault();
浏览器尝试event在全局范围内查找。Chrome碰巧在全局范围内提供了事件对象(因此没有错误),但是Firefox没有(因此没有错误)。
我建议将event参数添加到事件处理程序中:
$("#dodaj").click(function(event){ event.preventDefault(); // ... });
还有一个额外的区别:如果您未定义event参数,event则将引用Chrome中的 本机 事件对象,该对象不同于jQuery传递给处理程序的事件对象。
要了解有关使用jQuery进行事件处理的更多信息,建议阅读以下文章。