Javascript 立即更新textarea内的值,该值取自ajax发送到codeigniter后的会话
我想在会话更新后立即从会话中检索值,但由于某些原因,有时,我得到的值仍然是旧值,但在其他时间它会得到新值。也许我的代码中缺少了一些东西。代码如下: HTML 因此,我在Javascript 立即更新textarea内的值,该值取自ajax发送到codeigniter后的会话,javascript,php,ajax,codeigniter-3,Javascript,Php,Ajax,Codeigniter 3,我想在会话更新后立即从会话中检索值,但由于某些原因,有时,我得到的值仍然是旧值,但在其他时间它会得到新值。也许我的代码中缺少了一些东西。代码如下: HTML 因此,我在中回显了临时消息会话中的值。正如我所说的,中的值有时会更改,有时不会更改,因此我必须再次插入相同的值,并重新加载页面数次(1、2、有时3次)。每次用户重新加载或更改其他页面,然后再次返回同一页面时,这些值都会发送到控制器 谢谢您的帮助。从控制器返回后,您必须更改ajax成功方法中textarea的值,否则您必须重新加载才能看到更新
中回显了临时消息会话中的值。正如我所说的,
中的值有时会更改,有时不会更改,因此我必须再次插入相同的值,并重新加载页面数次(1、2、有时3次)。每次用户重新加载或更改其他页面,然后再次返回同一页面时,这些值都会发送到控制器
谢谢您的帮助。从控制器返回后,您必须更改ajax成功方法中textarea的值,否则您必须重新加载才能看到更新的会话值,您的值是否也从另一端更新?@Kuldeepsing是的,会话中的值是UpdateEdit缓存问题。它是?
<?php
$temp_message = $this->session->userdata('temporary_message');
?>
<form action="<?php echo base_url($form_url)?>" method="post">
<div class="box-body">
<div class="form-group">
<label for="receiver_number">Receiver:</label>
<textarea class="form-control" id="receiver_number" name="receiver_number" rows="5"><?php if (isset($temp_message)) { echo $temp_message['num_temp']; }?></textarea>
<span class="help-block"><?php echo form_error('receiver_number');?></span>
</div>
<div class="form-group <?php if(form_error('message-text') != NULL) { echo 'has-error'; }?>">
<label for="message_text">Message Text</label><div class="pull-right"><span id="chars">0</span></div>
<textarea class="form-control" name="message_text" id="message_text" rows="5"><?php if(isset($temp_message)) { echo $temp_message['message_temp']; }?></textarea>
<span class="help-block"><?php echo form_error('message_text'); ?></span>
<p id="message_temp" hidden><?php if(isset($temp_message)) { echo $temp_message['message_temp'];} ?></p>
</div>
<div class="box-footer">
<button type="submit" name="submit" id="submit" value="Submit" class="btn btn-primary">Submit</button>
<button type="submit" name="submit" value="Cancel" class="btn btn-warning">Cancel</button>
</div>
</form>
$(window).on('unload, load, beforeunload', function () {
let tempNum= $('#receiver_number').val();
let messageTemp = $('#message_text').val();
$.ajax({
type: "POST",
url: "<?php echo base_url('save-textarea'); ?>",
dataType: "JSON",
data: {
receiver_number: tempNum,
message_text : messageTemp
}
});
});
function save_textarea()
{
$data['num_temp'] = $_POST['receiver_number'];
$data['message_temp'] = $_POST['message_text'];
$message_session = $this->session->userdata('temporary_message');
if (isset($message_session))
{
if (($message_session['num_temp'] != $data['num_temp']) || ($message_session['message_temp'] != $data['message_temp']))
{
$this->session->unset_userdata('temporary_message');
$this->session->set_userdata('temporary_message', $data);
}
}
else
{
$this->session->set_userdata('temporary_message', $data);
}
echo json_encode($data);
}