我有下拉列表,其中列出了用户列表。因此,当我从列表中选择一个用户时,会出现一个单选按钮,其中包含修改用户详细信息,更改用户权限,警告用户
选项从收音机选项中选择选项后,我加载了一个php表单
<select id="user_id" name="user_id" class="form-control">
<option value="1">John</option>
<option value="2">Jake</option>
</select>
<input name="change" value="1" type="radio">
<input name="change" value="2" type="radio">
<input name="change" value="3" type="radio">
表格(更改用户名)
<form id="change_name" >
<input name ="username" />
<input value="submit" type="submit">
</form>
表格(更改权限)
<form id="change_permission" >
<input name ="permission_id" />
<input value="submit" type="submit">
</form>
这些表单中的每一个都有一个单独的提交处理程序(下面只是一个示例,因为所有表单都有类似的表单)
$("#change_name").validate({
debug: true,
rules: {
username: {
required: true
},
},
messages:{
//messages
},
submitHandler: function (form) {
$.ajax({
type: 'POST',
url: 'http://localhost/test/changename.php',
data: $(this).serialize(),
success(function(data) {
if (data){
alert("success");
$(this)[0].reset();
}
})
});
return false;
}
});
由于输入字段位于表单之外,因此我无法找到在提交表单时传递user_id
值的方法。
有人可以告诉我实现这个目标的最佳途径是什么?
答案 0 :(得分:1)
Serialize基本上采用键/值对并以格式连接它们:key=value&key1=value1
如果你想添加额外的东西,你可以做正常的字符串连接。
$(this).serialize() + "&" + "user_id=" + $('#user_id').val()
如果有的话,您可能需要添加逻辑以验证user_id。
您甚至可以将多个表单序列化为$('#form1, #form2').serialize()