Отправить форму с другой страницы с Javascript - PullRequest
0 голосов
/ 29 апреля 2020

У меня проблема при попытке отправить форму с другой страницы, которая загружена в элемент DOM. Указанный элемент формы имеет следующие атрибуты и выглядит следующим образом:

<form id="thisForm" enctype="multipart/form-data" method="post" action="some.php" accept-charset="UTF-8">
<table>
<tbody>

<tr>
<th><b>Title 1</b></th>
<td><select name="name1" id="id1"><option value="1">Selection 1</option><option value="2">Selection 2</option></select></td>
</tr>

<tr>
<th><b>Title 2</b></th>
<td><textarea name="name2" id="id2"></textarea></td>
</tr>

<tr>
<th><b>Title 3</b></th>
<td><select name="name3" id="id3"><option value="11">Selection 11</option><option value="12">Selection 12</option></select></td></tr>
<tr>

<td><input type="submit" name="__saveForm" value="Save"></td>
</tr>

</tbody>
</table>
</form>

И после кода JS, извините за плохие соглашения:

var formwrap = document.createElement("div");
var formform = document.createElement("form");

$.get("some.php", null, function(html) {
    var htmlstring = html;
    formwrap.innerHTML= htmlstring;
    formform = formwrap.querySelector("#thisForm");

    document.body.appendChild(formform); // I need to append the form somewhere to the current page, or I get this error in chrome: "Form submission canceled because the form is not connected"

    formform.querySelector("#id1").value = '2';     // Set a value in form
    formform.querySelector("#id3").value = '12';    // Set a value in form

    formform.submit();

    }, "text");

Когда код выполняется, я получаю перенаправляется на страницу, где форма включена (некоторые. php), но форма фактически не отправлена. Также выбор, который я сделал через код, здесь отсутствует.

Можно ли отправить эту форму, не открыв соответствующую страницу (некоторые. php) в браузере?

К сожалению, изменение исходного кода элемента формы, к сожалению, не вариант Я могу только изменить javascript часть.

Спасибо за помощь

1 Ответ

0 голосов
/ 30 апреля 2020

Мне удалось это исправить.

Я зарегистрировал Chrome Отладка сети, что был отправлен HTTP POST, но некоторые параметры отсутствовали по сравнению с тем, когда я отправлял форму вручную. Я смог добавить их через JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...