【发布时间】:2020-09-17 14:54:12
【问题描述】:
我目前正在从数据库中读取数据并在表格中显示返回的数据。一列包含每一行的 ID,我将其传递给这样的模式:
<a href=".user_id<?php echo $row['id']; ?>" data-toggle="modal" title="View and Edit User"> Edit </a>
模态从我包含的另一个 php 文件中获取数据,使用:
require('user_info.php');
每行的正确数据显示在模态上,因为我“获取”传递到模态的 id,并查询数据库并在模态上的表单上显示返回的信息。我一直小心使用类来识别表单元素,因为我打算使用 AJAX 提交表单。部分表格是:
<form method="POST" action="">
<div class="row form-group">
<label>User ID</label>
<div class="col-sm-12">
<input name="userid" type="text" class="form-control userid" value="<?php echo $prow['id'];?>">
</div>
<div class="col-md-6">
<label>Name</label>
<input name="name" type="text" class="form-control" value="<?php echo $prow['fullname'];?>">
</div>
<div class="col-md-6">
<label>Folder</label>
<input name="folder" type="text" class="form-control" value="<?php echo $prow['folder'];?>">
</div>
<input type="submit" class="btn form-control modify_user_info" value="Submit Modification">
</div>
现在的问题是,无论我通过模式编辑和提交原始表格的哪一行,尝试编辑的都是表格的第一行。 modal 会根据选择的行显示正确的信息,但是在 modal 上提交表单总是会将第一行的数据返回到处理表单提交的 php 文件中。
这是我的 javascript:
<script>
$(document).ready(function () {
$('.modify_user_info').click(function (e) {
e.preventDefault();
var userid = $('.userid').val();
var email = $('.email').val();
$.ajax
({
type: "POST",
url: "modify_user_info.php",
data: {
"userid": userid,
"email": email,
},
success: function (data) {
$('.result').html(data);
}
});
});
});
PS:提交没有 AJAX 的表单可以正常工作。 编辑:我需要补充一点,打印表单提交的 id 表明它是提交的表的第一行,而不是选定的行。
【问题讨论】:
-
您是否获得了
var userid = $('.userid').val(); var email = $('.email').val();这些变量的正确值? -
@JitendraYadav 我该如何检查?我怀疑 JavaScript 是错误的根源。
-
从字段中获取值后使用
console.log(userid, email)。确保它没有提交return false,然后检查浏览器控制台以查看输出。 -
console.log(userid) 返回数据库上的第一个 id,无论选择哪一行。
-
验证您的代码是否包含具有相同类
userid的多个字段,这将是一个问题。
标签: javascript php html jquery ajax