我有一个可以保存到文件并重新打开的html报告 重新打开文件时,会出现一个“刷新”按钮,用于更新数据库中的某些信息。
它确实会带来新值,但在保存报告并重新打开时,旧值仍然存在。
保存后,我会执行以下操作。
function saveDocument(){
var pat_id = $("#pat_id").val();
var doc_id = $("#doc_id").val();
var htmlText = "<html>" + $("html").html() + "</html>";
return $.ajax({
type: "POST",
url: "save.php",
data: { pat_id:pat_id, doc_id:doc_id ,htmlText:htmlText},
success:function(data) {
console.log(data);
if(data == true){
alert("Saved successfully.");
} else {
var msg = "The file failed to save specified location bellow. Please check.\r\n";
var msg = msg + data;
alert(msg);
}
}
});
}
所以我的问题在于第4行
var htmlText = "<html>" + $("html").html() + "</html>";
未选择刷新设置的ne值。
刷新如下所示。
function getRefresh(){
var pat_id = $("#pat_id").val();
var hosp_id = $("#hosp_id").val();
var unit_id = $("#unit_id").val();
$.ajax({
type: "POST",
url: "refresh.php",
data: { pat_id:pat_id,
hosp_id:hosp_id,
unit_id:unit_id
},
success: function(data) {
var json = $.parseJSON(data);
$('#dad').val(json.dad);
$('#dtd').val(json.dtd);
$('#consResp').val(json.consResp);
$('#ddd').val(json.ddd);
$('#disTime').val(json.disTime);
$('#los').val(json.los);
$('#transTo').val(json.transTo);
$('#patName').val(json.patName);
$('#adNo').val(json.adNo);
$('#dob').val(json.dob);
$('#gender').val(json.gender);
$('#weight').val(json.weight);
$('#AddressTop').val(json.AddressTop);
$('#PriDg').val(json.PriDg);
$('#botPICUCons').val(json.botPICUCons);
$('#botSpeCons').val(json.botSpeCons);
$('#gpFullName').val(json.gpFullName);
$('#gpAddressTop').val(json.gpAddressTop);
$('#admFrom').val(json.admFrom);
}
});
}
如果我在报告中更改了单数输入,我会按如下方式更新值。
$("html").on("change","input[type='text'], input[type='date'], input[type='time']", function() {
isDirty = (this.defaultValue !== this.value);
if (isDirty)
this.defaultValue = this.value;
});
但是对于“刷新”按钮,我不知道如何将上述内容作为质量分配。
这个问题与建议的不一样,因为我没有尝试更新“this”。我试图更新关于AJAX成功的十几个值。
工作流程
- 从DB创建html文档。
- 以当前在DB中反映的值打开。
- 现在,您可以编辑报告中允许的可编辑字段。
- 点击“保存”,即可保存报告。
- 从数据库重新打开创建的报告。 (保存的html文件被调用)
- 点击“刷新”以更新数据库中的字段
- 使用AJAX调用获取的新值,现在反映在打开的报表中 浏览器
- 单击“保存”。
醇>
- 新导入的值不会保存,即使它们显示在浏览器中打开的报告中。
怀疑旧值可能仍会反映在虚拟DOM中。因此为什么要做
var htmlText = "<html>" + $("html").html() + "</html>";
从虚拟DOM中获取html表示(我怀疑)不会传递要保存的NEW / REFRESHED值。
希望更有意义。
工具栏的片段,其中包含用于调用操作的按钮
<div class="no-print">
<div class="buttonBar">
<input type="button" class="button" value="Print" onclick="printMe()">
<input type="button" class="button" value="Save" onclick="getPageHTML()">
<input type="button" class="button" value="Refresh" onclick="getRefresh()">
</div>
</div>
以下是getPageHTML()
代码段
function getPageHTML() {
saveDocument().then(function(){
alert("Saved successfully.");
window.close();
});
return false;
}
答案 0 :(得分:3)
使用.val()
设置值实际上不会更新value
属性 - 它只会更新视图中的值。如果您需要更新属性,请手动设置:
.attr("value", val);