2013-05-16 21 views
0

我很确定这已被问过,但我找不到像这样的东西。如何在PHP正在处理表单时显示图像或文本

我想在一个表单被提交到显示图像或文本给用户,形式是通过$_POST发送值,并在同一页面接收做出DBO插件和文件的上传(move_uploaded_file)。

我不确定这是否可以用jQuery,JavaScript甚至PHP完成,所以我要求你提供任何帮助。

事情我已经尝试:

$(document).ready(function(){ 
    $("#btn").click(function(){ 
    $("#content").empty().html('<img src="waiting.gif">'); 
    }); 
); 

有了这个,我可以显示图像,当用户点击该按钮的形式(#btn),但我不知道如何阻止它,并返回其“背”到过程完成时的形式或如何显示消息。

+1

你是否提交表单有或没有ajax? – steve

+0

您是否直接使用普通浏览器POST提交表单?这不适合你想做的事情。您需要使用AJAX,并在等待返回“成功”时显示一个模式。 –

+0

@barjonah没有ajax。 – ramonovski

回答

1

我用这个函数来包装jQuery的AJAX POST函数。

function POST(_url,_data,_container,success,anim) { 
     var _loader = null 
     var doAJAX = function() { 
      $.post(_url,_data,success); 
     }; 

     if(typeof anim===undefined) { 
      doAJAX(); 
     } else if(_container!=null) { 
      switch(anim) { 
       case 'loading': 
        _loader = $("<div class='LoadingAnim' style='display:none;'></div>"); 
        _container.empty(); 
        _loader.appendTo(_container).fadeIn('fast',doAJAX); 
        break; 
       case 'fade': 
        _container.fadeOut('fast',doAJAX); 
        break; 
       case 'slide': 
        _container.slideUp('fast',doAJAX); 
        break; 
      } 
     } 
    } 

我添加了_container参数,这是在div这就是要保持内容的jQuery对象。可选的anim参数可以更改清除容器的动画。此外,加载图像是通过在清除后在容器中插入div来实现的。该div有一个类,它具有动画加载图标并在其父容器中正确居中。 doAJAX功能过去更长,但我不得不削减一些因为它不是有用的答案,这就是为什么它似乎不一定是空的。如果使用除“加载”之外的任何anim选项,请确保将容器重置为在success函数中可见。

使用是这样

POST('some-script.php',{data: values},$('#containerToPrintTo'),function(data) { 
    //Do some error checking or get the return from data and insert it. 
    }, 'loading'); 
0

你需要AJAX。您可以使用jQuery或手动执行。

如果您不想使用AJAX ...那么您无法检测表单何时完全提交。但是,您可以显示相同的页面,并在回发后用您的“消息”替换表单。

希望它有帮助。

+0

我正在阅读关于AJAX的,谢谢。 – ramonovski

0

如果你不使用AJAX,有一个完整的网页回发,您不必担心结算等图像,因为整个页面会刷新。

但需要照顾,你是不是“清空”或删除表格的内容/值提交之前,也验证#btn实际提交表单。

$("#btn").on('click', function(e){ 
    e.preventDefault(); 

    //TODO: 
    //INSERT YOUR WAITING IMAGE, WHICH CAN BE AN OVERLAY ON THE FORM 
    //GET FORM (USING ID/NAME) AND SUBMIT 
}); 
+0

你能解释这部分:“//获取表格(使用ID /名称)和提交”。感谢回复。 – ramonovski

0
function maskPage($) { 

    var mask_div = document.createElement('div'); 
    $(mask_div).css({ 
    background: 'black', 
    opacity: '0.7', 
    width: '100%', 
    height: '100%', 
    position: 'absolute', 
    top: 0, 
    left: 0, 
    display: 'none', 
    zIndex: 100 
    }).attr('id', 'page_mask'); 
    $('body').append(mask_div);  
} 



$(document).ready(function(){ 
     $("#btn").click(function(){ 
     if($('#page_mask').length === 0) { 
     maskPage($); 
     } 

     // do your work 
     $('#page_mask').fadeIn('fast'); 
     }); 
    ); 

呼叫这样safely.You可以与背景和DIV的透明度发挥。

相关问题