добавлено jQuery ничего не отправляет - PullRequest
1 голос
/ 08 марта 2019

Я пробую небольшую страницу с HTML-формой, и внутри нее jQuery добавляет файловые поля с именем, к которому добавляется [], поэтому цель PHP получает ее в виде массива файлов.Но PHP не получает файлы.

Пример:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("#add").click(function() {
        $("#deps").before("<tr id=\"dependency\"><td>Dependency:</td><td><input type=\"file\" name=\"deps[]\" /></td></tr>");
    });
    $("#rem").click(function() {
        $("#dependency").remove();
    });
});
</script>
    <table>
        <tr>
            <td>
                <button id="add">+ Dependency</button>
            </td>
            <td>
                <button id="rem">- Dependency</button>
            </td>
        </tr>
    <form method="POST" enctype="multipart/form-data" action="target.php">
        <tr id="deps">
            <td></td>
            <td><input type="submit" name="submit" value="send" /></td>
        </tr>
    </form>
</table>

В target.php:

$deps = $_FILES['deps'];

Но файлы не отправляются.Что мне делать?

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Спасибо, ребята. Бросил все на стол вещь на всякий случай и теперь работает.

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="script.js"></script>
    </head>
    <body>
        <form method="POST" enctype="multipart/form-data" action="target.php">
            <p>Course Name:&nbsp;<input type='text' name='courseName' /></p>
            <p>Resource:&nbsp;<input type='file' name='file' /></p>
            <p>Dependencies:&nbsp;<button type='button' id='add'>+</button></p>
            <div id="deps">
                <p><input type="submit" name="submit" value="send" /></p>
            </div>
        </form>
    </body>
</html> 

scrtipt.js - это:

$(document).ready(function() {
	$("#add").click(function() {
		$("#deps").prepend("<p><input type='file' name='deps[]' /><button type='button' class='rem'>- </button></p>");
	});
	$(document).on("click",".rem",function() {
		$(this).parents("p").remove();
	});
});

В основном изменил код imvain2.

0 голосов
/ 08 марта 2019

Упаковка таблицы в форму является частью проблемы, однако у вас есть другие проблемы, которые могут возникнуть. Код ниже решает те. Состояние кнопки по умолчанию - submit, и у вас не может быть нескольких объектов с одинаковым идентификатором (нажатие + зависимость)

<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("#add").click(function() {
        $("#deps").before("<tr><td>Dependency:</td><td><input type='file' name='deps[]' /><button type='button' class='rem'>- Dependency</button></td></tr>");
    });
    $(document).on("click",".rem",function() {
        $(this).parents("tr").remove();
    });
});
</script>
<form method="POST" enctype="multipart/form-data" action="target.php">
    <table>
        <tr>
            <td>
                <button type="button" id="add">+ Dependency</button>
            </td>
            <td>

            </td>
        </tr>
            <tr id="deps">
            <td></td>
            <td><input type="submit" name="submit" value="send" /></td>
        </tr>
</table>
    </form>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...