我有一个bootstrap模式,如果有要显示的数据行,我会使用db中的数据填充。 (名字,姓氏,班级等级)。
我可以在保存数据之前添加和删除行 我希望能够从表中收集数据行并创建一个数据对象,我可以在保存时传递给后端。我到目前为止的代码如下:
HTML
<?php foreach ($athletes as $i => $row) { ?>
<?php $i == 0 ? $rownum = 1 : $rownum = $i+1; ?>
<tr id="<?php echo $i; ?>">
<td><?php echo $rownum; ?><input type="hidden" name="data[id]" value="<?php echo $row['id']; ?>" ></td>
<td><input type='text' name="data[first_name]" class="form-control" value="<?php echo $row['first_name']; ?>" ></td>
<td><input type='text' name="data[last_name]" class="form-control" value="<?php echo $row['last_name']; ?>" ></td>
<td><input type='text' name="data[classrank]" class="form-control" value="<?php echo $row['class']; ?>" ></td>
<td><button type="button" id="remScnt" class="btn btn-default">Remove Row</button></td>
</tr>
<?php } } ?>
jQuery保存功能
$("button#saveaths").click(function() {
var user_id = $("#user_id").val();
var ath_data = [];
$("tr").each(function() {
if (data[first_name] != '') {
ath_data.push(this.data[first_name]);
ath_data.push(this.data[last_name]);
ath_data.push(this.data[classrank]);
ath_data.push(user_id);
}
});
});
我在if语句中收到错误。
在这个阶段,我只是尝试构建我可以传递给codeigniter控制器的数据对象,以便插入到我的数据库中。
此外,如果有更好的方法,我愿意接受建议。
提前致谢!
答案 0 :(得分:1)
您没有使用正确的语法来获取字段的值。
试试这个
$("button#saveaths").on("click",function() {
var userID = $("#user_id").val();
var ath_data = [];
$("tr").each(function() {
var firstName = $(this).find("[name=data[first_name]]").val();
if (firstName != '') {
var lastName = $(this).find("[name=data[last_name]]").val(),
classRank = $(this).find("[name=data[classrank]]").val();
ath_data.push({firstName:firstName,lastName:lastName,classRank:classRank,userID:userID});
}
});
if (ath_data.length>0) {
$.ajax({
type="POST",
url:"someServerProcess.php",
data: JSON.stringify(ath_data),
contentType: "application/json"
});
}
});