我有一个管理页面,我可以动态添加和删除表格行。 该页面加载了数据库中的现有数据(主要包含sku_code和5种不同的价格)但是当我动态添加行,并用相应的skus和价格填充它们时,我想将它们保存在数据库中。
问题是,我在客户端使用J {(动态添加表格行)与innerHTML = '<input type="text">
进行的操作无法通过主$_POST
<的<form>
变量访问/ p>
所以基本上我通过Javascript添加,所以我可以填充它们并将它们保存在数据库中。但$ _POST值为空。 Javascript代码工作正常。我不知道应该从哪里开始调试。
这是我正在使用的一些Javascript代码
function insert_record(){
var my_table = document.getElementById('my_table')
var tr = my_table.insertRow(my_table.rows.length-1)
//id-ul curent, numar toate row-urile - 1 (care este butonul OK)
var c_id = my_table.rows.length-2
tr.id = 'row_' + c_id + ''
var tr_td_1 = tr.insertCell(0)
tr_td_1.className = 'text2'
tr_td_1.align = 'center'
tr_td_1.innerHTML = 'SKU'
var tr_td_2 = tr.insertCell(1)
tr_td_2.className = 'text3'
tr_td_2.width = '63'
tr_td_2.innerHTML = '<input name="sku_' + c_id + '" type="text" id="sku_' + c_id + '" size="33" value="">'
....这会在包含提交按钮的最后一个表格中加入一个内部,之后会有
答案 0 :(得分:1)
你应该给出name属性。如果您担心无限数量的字段只需输入变量数组
像这样<input type="text" name="field1[]">
现在您可以在帖子中访问它们,如下所示:
$_POST['field1'] //this is an array of fields
修改强>
首先,您应该使用像jquery这样的库来简化工作。
答案 1 :(得分:1)
您需要为元素指定标签。然后你可以在下一页抓住它。
而不是innerHTML = <input type="text">
尝试使用
<script>
function addElement(tag_type, target, parameters) {
//Create element
var newElement = document.createElement(tag_type);
//Add parameters
if (typeof parameters != 'undefined') {
for (parameter_name in parameters) {
newElement.setAttribute(parameter_name, parameters[parameter_name]);
}
}
//Append element to target
document.getElementById(target).appendChild(newElement);
}
</script>
您可以点击偶数或手动addElement('INPUT','targetTag',{id:'my_input_tag', name:'my_input_tag', type:'text', size:'5'});
答案 2 :(得分:0)
我建议您确保所有字段都位于form
内,并且命名为所有字段,而不是尝试ajax
或@shail建议的功能。
在我看来,他们没有解决问题,只是避免它。