Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2024, 12:33
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

запустить ответ POST запроса как внешний javascript
Есть такая форма, которая отправляет заказ на сервер.

<form  action="https://script.google.com/macros/s/AKfycby-6vsRaF6VGpPQCd0HxZAv9wrOypsYpa2mfS1_EYV2pPXYgyQBaj1ahqwWVb7TpaVqpQ/exec" method="POST" name="shopform" target="_blank">
<input name="entry.380347480" aria-label="order_number" value="_Z_">
<input name="entry.1423219090" aria-label="name" value="111">
<input name="entry.774720101" aria-label="email" value="info@heeg.ru" >
<input name="entry.1229029910" aria-label="telephone"  value="111">
<input name="entry.1932354453" aria-label="delivery_adress" >
<input name="entry.1783446383" aria-label="link_for_your_order"  value="https://heeg.ru&id=test#index.html">
<textarea name="entry.839799310" aria-label="client_comments" ></textarea>
<textarea name="entry.766941228" aria-label="manager_comments" ></textarea>
<br><input type="submit" name="rsubmit" value="не нажимай меня">
</form>

<button onclick="formsend()">Нажми меня</button>

<script>
 function formsend(){
document.querySelector('[aria-label="manager_comments"]').value="[ Арт. | Название | шт. | Цена | Стоим. ][ 246 | Мини ролл Хот Чикен | 1 | 300 | 300 ][ 302 | Оякодон | 1 | 100 | 100 ][ oplnk | Наличными | 1 | OK | OK ][ dost | Доставка курьером 300 р. | 1 | OK | 300 ][ итог: | | | | 700.00 ]"
 
  document.forms.shopform.submit()
    
  }

</script>



при отправке форма (секунд 5 отправляет) открывает в новом окне javascript файл.
Как мне не открывая нового окна в текущем окне запустить этот javascript?
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2024, 16:31
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

Вот такой огород нагородил, вроде работает. ждать ответа секунд 10

<form  action="https://script.google.com/macros/s/AKfycby-6vsRaF6VGpPQCd0HxZAv9wrOypsYpa2mfS1_EYV2pPXYgyQBaj1ahqwWVb7TpaVqpQ/exec" method="POST" name="shopform" target="_blank">
<input name="entry.380347480" aria-label="order_number" value="_Z_">
<input name="entry.1423219090" aria-label="name" value="111">
<input name="entry.774720101" aria-label="email" value="info@heeg.ru" >
<input name="entry.1229029910" aria-label="telephone"  value="111">
<input name="entry.1932354453" aria-label="delivery_adress" >
<input name="entry.1783446383" aria-label="link_for_your_order"  value="https://heeg.ru&id=test#index.html">
<textarea name="entry.839799310" aria-label="client_comments" ></textarea>
<textarea name="entry.766941228" aria-label="manager_comments" ></textarea>
<br><input type="submit" name="rsubmit" value="нажимай меня">
</form>

<script>
document.querySelector('form').addEventListener('submit', function(event) {
document.querySelector('[aria-label="manager_comments"]').value="[ Арт. | Название | шт. | Цена | Стоим. ][ 246 | Мини ролл Хот Чикен | 1 | 300 | 300 ][ 302 | Оякодон | 1 | 100 | 100 ][ oplnk | Наличными | 1 | OK | OK ][ dost | Доставка курьером 300 р. | 1 | OK | 300 ][ итог: | | | | 700.00 ]"
  event.preventDefault(); // Предотвращаем перезагрузку страницы.
  // Обрабатываем данные формы...
  console.log('Форма отправлена. Отмечаем это!');
 
  
  fetch(event.target.action, {
        method: 'POST',
        body: new URLSearchParams(new FormData(event.target)) // event.target is the form
    }).then((response) => {
        if (!response.ok) {
          throw new Error(`HTTP error! Status: ${response.status}`);
        }
//console.log(response.text());

        return response.text(); // or response.text() response.json() or whatever the server sends
    }).then((body) => {
        // TODO handle body
console.log(body);
var fnp = Function(body);
fnp();
    }).catch((error) => {
        // TODO handle error
console.log(error);
    });
});

</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как дать ответ клиентской части на NodeJS? АнонимныйПарень Общие вопросы Javascript 1 26.08.2017 19:21
Как запустить галерею Colorbox на основе атрибутов изображений lukasss jQuery 4 31.07.2017 22:30
как получить результат от ajax запроса (из отдельного файла) 1Feniks1 AJAX и COMET 0 12.03.2017 18:45
Как правильно запустить JavaScript в моем случае ivanoevg Общие вопросы Javascript 1 21.09.2011 18:45
Как на JavaScript подгрузить JavaScript? Pug-dog&Elephant Opera, Safari и др. 2 18.09.2011 15:43