我正在使用prototype.js将POST内容传递给php脚本,但FILE POST没有

时间:2013-05-05 10:07:18

标签: javascript post prototypejs

我正在使用此脚本传递我的POST内容:

<script type="text/javascript">  
// <![CDATA[  
document.observe('dom:loaded', function() {  

    function sendForm(event){  
        // we stop the default submit behaviour  
        Event.stop(event);  
        var oOptions = {  
            method: "POST",  
            parameters: Form.serialize("standardform"),  
            asynchronous: true,  
            onFailure: function (oXHR) {  
                $('feedback').update(oXHR.statusText);  
            },  
            onLoading: function (oXHR) {  
            $('feedback').update('Enregistrement en cours ... <img src="images/throbber.gif" title="Loading..." alt="Enregistrement..." border="0" />');  
            },                            
            onSuccess: function(oXHR) {  
               $('feedback').update(oXHR.responseText);  
            }                 
        };  
        var oRequest = new Ajax.Updater({success: oOptions.onSuccess.bindAsEventListener(oOptions)}, "enregistre-site-marque.php", oOptions);             
    }  
    Event.observe('submitButton', 'click', sendForm, false);              
});   
// ]]>  

但我的FILE POST没有通过,我的enregistre-site-marque.php脚本中它们是空的。 我如何传递POST内容?

1 个答案:

答案 0 :(得分:0)

Prototype.js:Form.serialize()

“此外,文件输入被跳过,因为它们无法序列化并仅使用JavaScript发送。”

请参阅:http://prototypejs.org/doc/latest/dom/Form/serialize/

听起来你不能用这种方式AJAX文件 - 尝试使用常规表单,或者(如果需要)使用Javascript / AJAX上传器。

简单的HTML表单提交,没有AJAX,可能是技术上最简单的&amp;最可靠(因此更可取)的解决方案 - 如果你能做到这一点。