我正在創建一個php應用程序。在用戶更改日期選擇器的值時,他會被要求確認。如果他確認,id字段和archive_expiry字段中的日期將被更改。現在我從控制器得到這兩個字段的正確json響應,並且expiry字段中的值正在改變。但第二個字段只顯示一次更新的值。所有其他時間,數據庫中發生的更改都會在我發出警報時獲得正確響應,但archive_expiry div不會使用正確的值進行刷新。我正在使用的代碼如下所示基於ajax響應在PHP中刷新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)不刷新更新的值。
使用'的document.getElementById( 「archive_expiry」) .innerHTML = a;'獲取更新值 –
Thanks @ Deep3015它工作正常.. –