2012-09-27 7 views
0

по какой-то причине я не могу получить массив $ _FILES, чтобы включить загрузку, выбранную в моей форме. Из того, что я прочитал, форма выглядит нормально, и все остальные переменные получены просто отлично.

Каждый раз, когда я отправляю форму, var_dump для массива $ _FILES имеет 0 записей.

Для этого сообщения я удалил другие поля ради краткости, так как они работают.

<form name="addFact" id="addFact" action="add_fact.php" method="post" enctype="multipart/form-data" onsubmit="return validateStatus();" > 
    <input type="file" id="myImage" name="myImage" style="width:450px;"/><br /> 
</form> 

И после того, как я перезагрузки Я использую следующие для проверки массив $ _FILES:

echo "- Files - <br>\n"; 
echo "<pre>\n"; 
var_dump($_FILES); 
echo "</pre>\n"; 

но результат пуст каждый раз:

Файлы: массив (0) { }

Обновление Извините, не реализовали проверку stat мы все еще там .. но это JS, который проверяет, является ли отправить форму или не

function validateStatus() { 
    jQuery("#addFact").validationEngine({scroll: false}); 
    var valid = $("#addFact").validationEngine('validate'); 
    if (valid == true) { 
     submitForm('addFact'); 
    } 
    return false; 
} 

Хотя я сомневаюсь, что это часть проблемы, как форма успешно представляет со всеми атрибутами еще множество включая файл поле и т.д.

о ..и лол .. другой функция .. :) ... вот функция формы submt:

function submitForm(formName,message) { 
    $.ajax({ 
     data: $("#" + formName).serialize(), 
     type: $("#" + formName).attr('method'), 
     url: $("#" + formName).attr('action'), 
     success: function(response) { 
      $('#load_target').html(response); 
     } 
    }); 
    return false; 
} 

load_target является ДИВ на главной странице я загрузке php в ajax. - надеюсь, что все теперь ясно :)

Кроме того, чтобы страховать любые conrens из формы не отправлять что-либо .. вот результаты за пост var_dump

array(11) { 
    ["action"]=> string(4) "save" 
    ["category"]=> string(1) "3" 
    ["startDate"]=> string(10) "09-27-2012" 
    ["expireDate"]=> string(10) "11-27-2012" 
    ["title"]=> string(10) "Test Title" 
    ["subtitle"]=> string(10) "Test Title" 
    ["include_image"]=> string(3) "yes" 
    ["img_loc"]=> string(4) "left" 
    ["img_size"]=> string(2) ".3" 
    ["scroll"]=> string(1) "1" 
    ["fact_text"]=> string(27) "there's something about her" 
} 
+0

Действительно ли вы загружаете файл при его тестировании? индекс в $ _FILES может не существовать, если поле ввода остается пустым. – Flosculus

+4

Что делает «validateStatus()»? Может ли это манипулировать этим полем? –

+0

проверяет статус для всех заполняемых полей (обязательные поля), а затем отправляет форму, если все это хорошо, извините. – Silvertiger

ответ

1

если вы используете JQuery мобильного добавить data-ajax = "false" в тег формы

Смежные вопросы