【发布时间】:2014-04-20 04:43:14
【问题描述】:
我有一个带有多个文件输入(图像)的配置文件编辑表单,我想在成功回调时刷新表单并获取/显示最新更新的数据(图像)回到同一表单,而无需刷新整个页面。
$("#mylisting_form").ajaxForm({
dataType: "json",
beforeSend: function() {
var btn = $('#btn_mylisting');
btn.button('loading')
},
uploadProgress: function(event, position, total, percentComplete) {
console.log(percentComplete); // Show the completed percent
},
success: function(response) {
if(response.success == 'success'){
$('#form').reset();
$('#successful').html('<b>Edited saved!</b>').show();
}else{
$('[id$="_error"]').html('');
$.each(response.error, function(key, value){
if(value){
$('#' + key + '_error').html(value);
}
});
}
$('#btn_mylisting').button('reset');
},
error: function(xhr, textStatus, errorThrown) {
console.log(errorThrown );
}
});
//form
<div id="form">
<form class="form-horizontal" role="form" method="post" id="mylisting_form" enctype="multipart/form-data" action="inc/callback/request_update_item.php">
<input type="hidden" name="user_id" value="<?php echo $data->user_id ?>">
<input type="hidden" name="list_id" value="<?php echo $list_id ?>">
//uploaded image will show here
<div id="show_images"><? php fetch image goes here ?></div>
<div class="form-group">
<label class="col-sm-4 control-label" for="photo">Photo</label>
<div class="col-sm-7"><input type="file" name="files[]" class="multi" accept="gif|jpg" maxlength="3" /><p class="help-block">Up to 3 photos max.</p></div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="publish"></label>
<div class="col-sm-7"><input type="checkbox" name="publish" <?php echo $checked ?>> Publish</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="email">Name</label>
<div class="col-sm-7"><input type="text" class="form-control" id="name" name="name" value="<?php echo $list->name ?>"><span class="error" id="name_error"></span></div>
</div>
<hr />
<div class="form-group">
<div class="col-sm-offset-4 col-sm-7"><button class="btn btn-success" id="btn_mylisting" type="submit" data-loading-text="Loading...">Save</button></div>
</div>
</form>
</div>
Ajax 请求 (request_update_item.php) 仅回调成功或错误状态,它不会让 post 数据返回响应,我想简单,这就是我问的原因是可能只刷新整个 @987654322 @ 或 form 仅用于特定项目以显示从数据库获取的更新信息。
感谢您的建议!
【问题讨论】:
-
看起来是 XY 问题。你说的是哪张图???
-
表单有多个文件上传(图片),一旦表单数据在数据库中处理成功,回调将重新加载表单以获取/显示上传的文件(图片)回到同一个表单而不是完整的页面重新加载,希望你能明白我的意思。谢谢!
-
您真的应该提供更相关的代码,例如何时/如何调用 ajax 请求?您如何定位/获取新的特定图像的来源?相关的 HTML 代码呢?等等……
-
帖子已编辑,敬请指教。谢谢。
-
那么您正在使用 PHP 来更新新图像。您之前真的应该告诉我们...现在,确实,您应该从 ajax 请求返回新的图像源,然后将其附加到特定的 DIV。 PHP是一个服务器端脚本,页面渲染后不刷新所有页面就无法调用它,意思是再次请求服务器。