не может отправить форму с помощью jQuery - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть эта форма

<form id="frm_main" action="#" method=POST>
 <input type=hidden name="MAX_FILE_SIZE" value="100000" />
 <input id='file' name="file" type="file">
 &nbsp;&nbsp;
 <input type=submit id='btn_import' name='btn_import' value='Importar' />
 <input type=hidden id="uploadResponseType" name="mimetype" value="html" />
 <input type=hidden id="func" name="func" value="upload" />
 <div id="uploadOutput"></div>
 </form>

Итак, проблема возникла, когда я пытаюсь опубликовать загруженный файл. Если я использую функцию ajaxSubmit, форма отправляется, но она не возвращается на страницу; и если я использую функцию $ .ajax, она не отправляет файл загрузки. Дело в том, что мне нужно вернуться на ту же страницу, потому что я должен кое-что сделать с содержимым файла. Я уже перепробовал много комбинаций, но у меня все те же результаты. Код для обработки отправки выглядит следующим образом

<code>$( '#frm_main' ).bind( 'submit', function( e ) {
// e.preventDefault(); // <-- important
$( this ).ajaxSubmit({
target: '#uploadOutput', // <-- div container
type: "POST", // <-- override, just in case.
url: "/process.php", // <-- server-side handler
data: "func=upload", // <-- parameter for post purpouse
beforeSubmit: function(a,f,o) {
o.dataType = $('#uploadResponseType').val();    // should be 'html'.
$('#uploadOutput').html('Submitting...');
},
success: function(data) {
var $out = $('#uploadOutput');
$out.html('Form success handler received: <strong>' + typeof data + '</strong>');
$out.append('<div><pre>'+ data +'
'); } }); вернуть ложь; });

И я уже попробовал следующий код

$('#frm_main').bind('submit', function() {
var formdata = $(this).serialize();
$.ajax({
    url:    '/process.php',
    data:   formdata,
    dataType: 'html', 
    success: function(data){
        var $out = $('#uploadOutput');
        $out.html('Form success handler received: <strong>' + typeof data + '</strong>');
    }
});
return false;
});

И код process.php выглядит так

switch($_POST['func']) {
  case 'upload' : 
    $output = upload_file ();
    echo $output;
   break;
 default : 
   echo "<BR/>INVALID";
   break;
}
?>

Может кто-нибудь помочь мне в этой ситуации, пожалуйста? Будем благодарны за любую помощь

1 Ответ

0 голосов
/ 06 ноября 2011

Вам не нужна форма enctype = "multipart / form-data" для загрузки файлов?

...