【发布时间】:2013-05-08 19:22:25
【问题描述】:
我需要将客户端生成的动态表数据保存到数据库中。
我的动态表如下:
<table class="table" id = "myTable">
<thead>
<tr>
<th>Roll No</th>
<th>Student Name</th>
<th>Attendance</th>
</tr>
</thead>
<tbody>
<?php foreach($results as $students) {?>
<tr id="<?= $students->roll_no;?>" align ="center">
<td><?= $students->roll_no;?></td>
<td><?= $students->full_name;?></td>
<td><input type="radio" id="att" name="attendance" value="present">Present
<input type="radio" id="att" name="attendance" value="absent">Absent</td>
</tr>
<?php } ?>
</tbody>
</table>
<input type="submit" onClick="savedata()" name="submit" value="SAVE">
这里的转折是我在第三列中使用了一个单选按钮,因此需要在 SUBMIT 上传递选中的值
我使用的javascript代码(参考:Stackoverflow Answer)是:
函数保存数据() { var oTable = document.getElementById('myTable'); //获取表格
var rowLength = oTable.rows.length; //gets rows of table for (i = 1; i < rowLength; i++){ //loops through rows var oCells = oTable.rows.item(i).cells; //gets cells of current row var cellLength = oCells.length; for(var j = 0; j < cellLength; j++){ //loops through each cell in current row <!--get your cell info here--> if(j == cellLength-1) { var cellVal = $('input[name="attendance"]:radio:checked'); alert(cellVal); // store it in array here radioarr = [oTable.rows.item(i).cells,oCells.item(j).innerHTML]; } else { var cellVal = oCells.item(j).innerHTML; alert(cellVal); // store it in array here fieldarr = [oTable.rows.item(i).cells,oCells.item(j).innerHTML]; } } } } $.ajax{ // Pass the data to another page insert.php and store it in the database } </script>
所以我需要做的是.. 制作一个键值对并将其存储在一个数组中并将其作为 ajax 请求传递并将其插入数据库中。
问题:
选中的单选按钮未存储在数组中
我需要创建一个二维数组并将所有数据存储在那里,然后我创建了它的显示 [object,object]
我需要使用 ajax 请求将此数组传递到另一个页面并将其存储在数据库中。
请帮帮我,我该怎么做?
提前致谢。数控
【问题讨论】:
-
如果您知道需要采取的步骤,能否向我们展示您为采取这些步骤而编写的代码?您在这些步骤中遇到了哪些问题?
-
@John:我已经在编辑中解释了这些问题
-
我建议创建您从表中获取的数据的 json 对象,并对您执行 json_decode .. 的 php 文件进行 ajax 查询
-
在您的表格中,您可以通过为表格中的所有单选按钮赋予相同的名称属性值来创建单选按钮组。所以表中的所有单选按钮都在同一组中。如果不是故意的,您应该为每一行使用不同的名称,例如出席_01、出席_02 等等。
标签: php javascript ajax jquery client-side