У меня есть форма: (сокращенная версия)
<form class = "form-inline" id = "parts-form" method = "post" enctype = "multipart/form-data">
<div class = "form-group">
<label for = "import-parts">Import:</label>
<input type = "file" id = "import-parts" />
</div>
</form>
С другими входами (просто текст / выбор) - отправка работает нормально, но у меня есть jQuery, чтобы определить, есть ли файл или если входные данные соответствуют сумме X:
if ($('#import-parts')[0].files[0]) {
form.attr('action', parts_url+ 'output-screen.php');
form.submit()
} else {
if (i > 0) {
form.attr('action', parts_url+ 'output-screen.php');
form.submit()
} else {
alert('Error! You must have at least one part selected. Please try again.')
}
}
Условие истинно (я знаю это, потому что меня перенаправляют на output-screen.php), но делаю:
<div class = "row">
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
echo '<pre>';
print_r($_FILES);
echo '</pre>';
?>
</div>
в output-screen.php возвращает пустые массивы - что не так с моим кодом? Почему он не показывает мне, чего я ожидаю? В jQuery .submit() отсутствует что-то, о чем я не знаю?
Обновлено:
просто чтобы уточнить, это файл csv (намерение состоит в том, чтобы прочитать CSV и использовать в нем данные)
@kerbholz ... ах HTML, моя шип на в остальном идеальная роза. Мое незнание - не блаженство xD добавит и сообщит, работает ли xD
@kerbholz это сработало :) PHP - без проблем, доходит до HTML атрибут shizzle и все теряют рассудок xD
Грац, рад, что он работает;)






Так что это была глупая проблема - для ввода формы нужен атрибут name.
ссылка: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Attributes
изменение ввода:
<input type = "file" name = "input" id = "import-parts" />
работает, теперь я могу использовать $_FILES и просматривать свои данные. Спасибо @kerbholz за то, что направили меня в правильном направлении.
<input type = "file" id = "import-parts" />требует атрибутаname?