gpt4 book ai didi

php - 页面上多个表单的ajax验证,都有相同的类

转载 作者:行者123 更新时间:2023-11-30 05:44:38 24 4
gpt4 key购买 nike

基本上我正在制作 CMS 并希望在后期编辑中使用。

atm 的工作原理是博客文章被回显 (PHP) 并且有一个隐藏的 ckeditor,当单击编辑按钮时它会显示出来。然后,编辑按钮将替换为保存按钮。

这一切都很好,但是在保存博客文章时出现了问题。

php 工作正常,ajax 验证也工作正常,但仅当有 1 篇博文时。

当超过 1 个帖子时,就会出现错误。问题在于,保存帖子按钮似乎正在发送每篇博文的所有数据。我用firebug net检查了一下,发现所有数据都在发送。

我只需要一种方法,使表单中的保存按钮只影响该表单中的数据。目前所有的错误/成功消息都显示。

这是回应的帖子:

<div class="blogtest">

<form action="process/updatepost.php" class="updatepost" method="post">
<input type="button" class='.$editenabled.' value="Edit">
<input type="submit" class="saveupdatebutton" value="Save">
<input type="hidden" class="postid" name="postid" value="'.$postID.'">

<div class="text">

<div class="buildtext">'.$text.'</div>

<div class="editor"><textarea name="ckeditor" class="ckeditor">'.$text.'</textarea></div>

</div>

</form>

</div>

这是javascript:

$(文档).ready(函数(){ $(".updatepost").submit(函数(){

    $(".error").remove();
$(".success").remove();

// If there is anything wrong with
// validation we set the check to false
var check = true;

// Get the value of the blog update post
var blogpost = $('.ckeditor').val();

// Validation
if (blogpost == '') {
check = false;
$('.ckeditor').after('<div class="error">Text Is Required</div>');
}

// ... goes after Validation
if (check == true) {
$.ajax({
type: "POST",
url: "process/updatepost.php",
data: $(".updatepost").serialize(),
dataType: "json",
success: function(response){

if (response.databaseSuccess)
$('.ckeditor').after('<div class="success">Post Updated</div>');
else
$('.ckeditor').after('<div class="error">Something went wrong!</div>');

}
});
}
return false;
});

});

感谢阅读。希望你能帮上忙。

最佳答案

您只需将验证逻辑限制为实际提交的表单。现在$('.ckeditor').after('<div class="error">Text Is Required</div>');正在修改与 ckeditor 类名匹配的所有项目。见下文——我添加了一个名为 $targetForm 的变量,它获取正在提交的表单并适当修改代码以仅引用该表单的子项。

$(document).ready( function() { 
$(".updatepost").submit(function() {
var $targetForm = $(this);

$targetForm.find(".error").remove();
$targetForm.find(".success").remove();

// If there is anything wrong with
// validation we set the check to false
var check = true;

// Get the value of the blog update post
var $ckEditor = $targetForm.find('.ckeditor'),
blogpost = $ckeditor.val();

// Validation
if (blogpost == '') {
check = false;
$ckeditor.after('<div class="error">Text Is Required</div>');
}

// ... goes after Validation
if (check == true) {
$.ajax({
type: "POST",
url: "process/updatepost.php",
data: $targetForm.serialize(),
dataType: "json",
success: function(response){

if (response.databaseSuccess)
$ckeditor.after('<div class="success">Post Updated</div>');
else
$ckeditor.after('<div class="error">Something went wrong!</div>');

}
});
}

return false;
});
});

关于php - 页面上多个表单的ajax验证,都有相同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707482/

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