【发布时间】:2019-02-26 14:48:54
【问题描述】:
我有一个数据表,其中有一个带有编辑按钮的详细信息列。当用户单击编辑时,将 id 作为参数传递。我正在获取该 id 的所有值并在表单中显示。现在,当我使用 PUT 方法编辑值并提交表单时,它被插入到表中,这些值作为参数传递并显示空表单。如何解决这个问题。
HTML:
<form class="container" id="myform" name="myform" novalidate>
<div class="form-group row">
<label for="position" class="col-sm-2 col-form-label fw-6">Position</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="position" name="position" placeholder="Position" required>
</div>
</div>
<div class="form-group row">
<label for="location" class="col-sm-2 col-form-label fw-6">Location</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="location" name="location" placeholder="Location" required>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
PUT 方法脚本:
<script type='text/javascript'>
$(document).ready(function(){
$("#myform").submit(function(e) {
var parms = {
position : $("#position").val(),
location : $("#location").val()
};
var par_val;
var param_id = new window.URLSearchParams(window.location.search);
par_val = param_id.get('id');
console.log(par_val);
var par_url = par_val;
$.ajax({
url: "http://localhost:3000/joblists/"+par_val,
method: 'PUT',
async: false,
dataType : "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(parms),
success: function(data){
console.log('Submission was successful.');
console.log(data);
},
error: function (data) {
console.log('An error occurred.');
console.log(data);
},
})
});
});
</script>
GET方法脚本:
<script type="text/javascript">
$(document).ready(function(){
var id_val;
var params = new window.URLSearchParams(window.location.search);
id_val = params.get('id');
console.log(id_val);
var url1=id_val;
$.ajax({
url: "http://localhost:3000/joblists/"+id_val,
type: "GET",
dataType: "json",
success: function (data) {
// alert(JSON.stringify(data));
console.log(typeof(data));
$("#position").val(data.position);
$("#location").val(data.location);
},
error: function(data) {
console.log(data);
}
});
});
</script>
提交表单后,页面应与编辑表单值保持一致。只应插入已编辑的值。如何做到这一点。
【问题讨论】:
-
一种解决方案是您可以在获得成功响应后重新加载页面,即
location.reload(); -
@Swati 我试过了,但它显示的是空表单
-
您是否以
database的形式显示值? -
正在从数据库中获取值。问题是值在提交后作为参数在 url 中传递。所以提交后我无法在表单中显示值
-
但是我没有在您的表单中找到任何数据库代码?尝试发布您的完整代码
标签: javascript jquery html ajax bootstrap-4