我正在创建一个php应用程序。当用户更改日期选择器的值时,他将要求确认。如果他确认,将更改id expiry和archive_expiry字段中的日期。现在我从控制器获得这两个字段的正确json响应,并且到期字段中的值正在改变。但第二个字段仅显示更新的值一次。所有其他时间,当我发出警报时,db中发生的更改将作为正确的响应,但archive_expiry div没有使用正确的值刷新。我正在使用的代码如下所示
<div class="controls input-append date form_date " data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy/mm/dd">
<span class="add-on"><?php echo $this->Form->input('expiry', array('size' => 12, 'type' => 'text', 'id' => 'expiry', 'onchange' => 'confirmChange()', 'value' => __(date("Y/m/d", strtotime($project['expiry']))), 'readonly' => true, 'style' => 'border:1px solid #fff', 'label' => false)) ?></span>
<span class="add-on" style="background-color:#eeeeee; border:1px solid #ccc;"><i class="icon-th"></i></span>
<input type="hidden" id="dtp_input2" value="" />
</div>
<div id="archiveExpiry">
<?php echo (date("Y/m/d", strtotime($project['archive_expiry']) )) ?>
</div>
<script language="JavaScript" type="text/javascript">
var a = '<?php echo (!empty($project['
expiry '])) ? date("Y/m/d", strtotime($project['
expiry '])) : null; ?>';
function confirmChange() {
var r = confirm("公開期限を更新しますか?");
if (r === true) {
changeDeliveryDeadLine();
} else {
document.getElementById("expiry").value = a;
}
}
</script>
<script language="JavaScript" type="text/javascript">
function changeDeliveryDeadLine() {
var expiry = $('#dtp_input2').val();
if (expiry !== '') {
$.ajax({
type: "POST",
url: '<?php echo $this->Url->build(['action' => 'changeDeliveyDeadLine']) ?>',
data: {
'expiry': expiry,
'projectId': '<?php echo (!empty($project['id'])) ? $project['id '] : null; ?>'
},
datatype: 'json',
success: function(out) {
a = out.result;
b = out.archive;
document.getElementById("expiry").value = a;
$('#archiveExpiry').replaceWith(b);
}
});
}
}
</script>
为什么第二个div(archive_expiry)没有刷新更新的值。
答案 0 :(得分:1)
在这种情况下你应该使用.html():
$('#archiveExpiry').html(b);
答案 1 :(得分:0)
您对var a =
,url:
和'projectId'
如果在内部使用"
单引号,请使用'
双引号,如果在双引号内使用双引号,请使用转义"\""
。
我希望它有所帮助
答案 2 :(得分:0)
当我更换代码时
success: function(out) {
a = out.result;
b = out.archive;
document.getElementById("expiry").value = a;
$('#archiveExpiry').replaceWith(b);
}
代码
a = out.result;
b = out.archive;
document.getElementById("expiry").value = a;
document.getElementById("archiveExpiry").innerHTML = b;
解决问题