Javascript 从复选框编辑提交的数据

Javascript 从复选框编辑提交的数据,javascript,php,jquery,checkbox,Javascript,Php,Jquery,Checkbox,我有一个我正在创建的页面,管理员可以在其中使用复选框编辑以前表单中的数据。我已经使用以下代码通过复选框显示了已提交的数据,正如我在上一页将其提交到段落中一样: <script type="application/javascript"> $(document).ready(function() { var str = document.getElementById('size').innerHTML; var res = str.replace(/<p>/g,'<

我有一个我正在创建的页面,管理员可以在其中使用复选框编辑以前表单中的数据。我已经使用以下代码通过复选框显示了已提交的数据,正如我在上一页将其提交到段落中一样:

<script type="application/javascript">
$(document).ready(function() {
var str = document.getElementById('size').innerHTML; 
var res = str.replace(/<p>/g,'<input type="checkbox" value="');
var res = res.replace(/<\/p>/g,'" id="size" name="size[]" checked />');
document.getElementById('size').innerHTML=res;
});
</script>
但是我不确定如何显示剩余的字段,我想我可能需要实现一个for循环,但我不确定这样做的最佳方式

内容当前存储在数据库中,如下所示:

<p>xs</p><p>s</p><p>m</p><p>l</p><p>xl</p>
非常感谢


科斯塔

如果我理解正确,您可以这样做:

$("p").each(function(index) {
    $(this).replaceWith('<input type="checkbox" id="size" name="size[]" checked> ' +     $(this).text() + ' </input>');
});
这将迭代所有p元素,并将它们替换为页面上任何p元素的输入类型

编辑

如果您可以从前面的表单中设置value属性,那么假设这可能从DB返回,那么类似的操作可能会起作用:

<p class="paragraph" >xs</p>
<p class="paragraph" value="24">s</p>
<p class="paragraph" >m</p>
<p class="paragraph" value="34">l</p>
<p class="paragraph" value="36">xl</p> 
然后你可以这样做:

$("p").each(function (index) {
    if ($(this).attr("value") !== undefined) {
        $(this).replaceWith('<input type="checkbox" id="size" name="size[]" checked> ' + $(this).text() + ' </input>');
    } else {   
        $(this).replaceWith('<input type="checkbox" id="size" name="size[]" unchecked>' + $(this).text() + ' </input>');
    }
});

这是另一个例子。这假设您已经从数据库中检索到数据。

只是想提出一个小建议。如果您使用的是jQuery,请尝试使用以下语法获取元素:$size,而不是使用内置于浏览器中的document.getElementById'size'函数。您还可以利用html jQuery函数来获取内部html内容:$size.htmlI不理解其背后的逻辑。为什么要将内容作为标记存储在数据库中,然后使用JavaScript对其进行解析?为什么不将数组序列化到数据库中,让PHP解析它呢?在另一个页面上,我使用单选按钮和逗号分隔代码。对我来说,这似乎是最合乎逻辑的方法。我对PHP还是相当陌生,所以可能有一些我忽略了的更好的方法。谢谢你的帮助,但不完全是这样,假设只有一半的复选框被从数据库中提取出来,我需要其余的复选框显示为未经检查。