gpt4 book ai didi

javascript - 当通过 HTML 文件包含在 PHP 中时,AJAX Post 不再工作

转载 作者:行者123 更新时间:2023-11-28 19:09:50 24 4
gpt4 key购买 nike

对于我的很多 php 文件,我附加了一个 html 和一个 javascript 部分,它们修改和增强了表格中显示的数据。因为 html 和 js/jquery 部分始终相同,所以我想创建一个全局头文件,将其包含在我的 php 文件中,如下所示:

include("parts/head.html");

Head.html包含几个jquery js文件,css文件和我自己的js,它调用jquery插件并将其应用于主表中的某些id或类:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/styles.css">
<script type="text/javascript" src="js/defaulttable.js"></script>
<link rel="icon" href="images/favicon.ico">
<body>test test
</body>
</html>

现在,除了一个函数之外,一切都工作正常 - 在该函数中,您可以通过一个小文本框将注释插入到数据库中。从我的 .js 文件中提取:

 //function to insert textarea
function insertTextarea() {
if ($(this).parents("tr").find("td:eq(0)").text() == 1) {
var boardInfo = $("<form id='boardComment'><textarea placeholder='Notizen? Fragen? Kommentare?' rows='2' cols='27'></textarea>Privat:<input type='checkbox' name='privatecheckbox' id='privatecheckbox'/>Reminder:<input type='checkbox' name='remindercheckbox' id='remindercheckbox' checked/><input type='submit' value='Submit'><input type='reset' value='Cancel'></form>");
} else {
var boardInfo = $("<form id='boardComment'><textarea placeholder='Notizen? Fragen? Kommentare?' rows='2' cols='27'></textarea>Privat:<input type='checkbox' name='privatecheckbox' id='privatecheckbox'/>Reminder:<input type='checkbox' name='remindercheckbox' id='remindercheckbox'/><input type='submit' value='Submit'><input type='reset' value='Cancel'></form>");
}

console.log('this', $(this).parents("tr").find("td:eq(0)").text());


$(this).parent().append(boardInfo);
$("tbody img").hide();
$("textarea").focus();

$("#boardComment").on("submit", function(event) {
event.preventDefault();
var change_id = {};
change_id['id'] = $(this).parent().attr("id");

change_id['comment'] = $(this).find("textarea").val();

change_id['privatecheckbox'] = $("input[name='privatecheckbox']", this).is(':checked') ? 1 : 0;
// get remindercheckbox
change_id['remindercheckbox'] = $("input[name='remindercheckbox']", this).is(':checked') ? 1 : 0;

$.ajax({
type: "POST",
url: "boardinfo2private.php",
cache: false,
data: change_id,
success: function(response2) {
alert("Your comment has been saved!");
$("tbody img").show();
$("#" + change_id['id']).find("form").remove();

if (change_id['remindercheckbox'] == 1) {
console.log("rem checkbox 1");
$("#" + change_id['id']).parent().addClass("Reminds");
$("#" + change_id['id']).parent().find("td:eq(0)").html(1);

} else if ($("#" + change_id['id']).parent().hasClass("Reminds")) {
$("#" + change_id['id']).parent().removeClass("Reminds");
$("#" + change_id['id']).parent().find("td:eq(0)").html(0);

}
}
});

return false;
});

当我将所有内容放入单个 php 文件(html、脚本和 php)中时,变量change_id 已在之前充分定义并且完美运行。发生的情况是,当我点击提交时,页面完全重新加载,并且变量存储在 URL 中,而没有插入到数据库中。

我在 js 文件中执行的其他函数调用也是外部 php 文件上的 AJAX Posts,它们工作正常。不过,他们不会向数据库中插入任何新内容。

如果有人能帮助我解决这个问题,我将不胜感激。我非常想改进我的编码,并认为全局文件将是一个好的开始,所以如果我想向 JS 添加一些内容,我不必更改每个文件..

最佳答案

你想通过全局来改进不是一个好主意......因为全局的事情总是有问题,你应该调用这个函数

$(document).ready(function(){

call it here
})

在 head 中包含 javascript 也不是一个好主意

关于javascript - 当通过 HTML 文件包含在 PHP 中时,AJAX Post 不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30917892/

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