![](/img/trans.png)
[英]edit row in html table using php and js/jquery and save it in db
[英]Jquery Edit text then save to DB using ajax
我有一个页面,以div和spans显示文本。 在每个图像旁边,都有一个用户可以单击的图像。
当他们单击此图像时,我需要将文本更改为文本区域,以便用户可以编辑文本,然后在单击该文本时,将需要调用php脚本以通过ajax保存到DB。
所有div和图像具有唯一的ID所以这应该使之与jQuery选择更容易。
有人可以帮忙吗? 到目前为止,我尝试过的所有方法都没有真正起作用。
谢谢
您可以使div可编辑:
$(".ajax-div .on-img").on("click",function(ev) {
$(this).parent().find(".editable-text").attr("contenteditable", "true").after("<button onclick='saveEdits()'>Save</button>");
})
您的html结构必须看起来像这样
<div class="ajax-div" id="somediv">
<div class="editable-text">Editable text</div>
<img class="on-img" src="" alt="">
</div>
saveEdits()函数:
function saveEdits() {
$(".ajax-div").each(function() {
if(this.hasAttr("contenteditable") && this.attr("contenteditable")==true) {
id = $(this).attr("id");
//handle change
}
})
}
假设您有:
<div id='mydivparent'>
Some text here
<div>
<img src='images/mypic.jpg' id='mydiv' onclick='editr(this)' />
</div>
</div>
根据您的需求建议,下面的JS代码就足够了。
<script>
function editr(obj)
{
var id = $(obj).attr('id');
var text = $('#mydiv'+parent).text();
$('#mydiv'+parent).empty();
$('#mydiv'+parent).append('<form action='form_processor.php' onsubmit="send_ajax($('textarea#'+id+').value)"><textarea id='+id+'>'+text+'</textarea><input type='submit' value='Save Text'></form>');
}
function send_ajax(txtValue){
$.ajax({
url: 'form_processor',
cache: false;
type: 'POST',
data: {'text': txtValue},
success: function(){
//Code to add the text to the div and delete the textarea returning it to a normal div
}
});
return false;
}
</script>
您应该记住如何命名div和images id,以便从image id访问div的id很容易。 您应该使用自己的协议,这样如果您具有图像ID,就可以获取相关的div ID,或者可以将图像放入div中,就像选择父项一样简单。
编辑后,您可以在用户之后将其设置为ajax。
该代码不能完全涵盖所有情况,例如,如果在保存第一个打开的文本区域之前单击另一个图像,但是我相信它将为您设置正确的方法。
最后,我使用了jeditable插件为找到这篇文章的任何人解决了这个问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.