Поддержка Проблемы и решения Не работает код по возврату сабмита формы

  • Имеется код. Он вставлен в чистую страницу wordpress посредством встроенного html редактора содержимого страницы. Форма корректно отображается, но при нажатии submit вылетает сообщение о невозможности найти страницу. Сайт поднят локально на openserver. Прошу объяснить, почему при наличии в коде указания на страницу исполнения, вылетает сообщение о невозможности её найти. Подскажите, что отредактировать, для того, что бы всё ззаработало (при нажатии submit скачивался этот самый сабмит заполненной формы). Спасибо.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Он вставлен в чистую страницу wordpress посредством встроенного html редактора содержимого страницы

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

    Например этот https://ru.wordpress.org/plugins/insert-php/

    и другие https://ru.wordpress.org/plugins/search/insert+code/

    Сайт поднят локально на openserver

    Вот это и есть главная ошибка. Так как «поднимать» сайты на WordPress нужно в тех условиях, в которых они будут работать. Короче говоря — на реальном хостинге. Сейчас это вполне доступно — например иметь тестовый поддомен.

    Так что впереди у вас еще много проблем, связанных с локальным хостингом и еще больше их будет при (после) переноса сайта на реальный хостинг. Тем более с вашей склонностью к сторонним кодам. Не вы первый и наверное не вы последний проходите этот никому не нужный путь с локальным хостингом.

    @perdyllo , спасибо, а сам код «исправен»? Или есть ошибки? В частности интересует конструкция echo json_encode($_POST[‘submit’]); которая должна выдать файл json на скачивание. В целом, на настоящем сайте этот код должен работать, или нужно что то очевидное исправить?

    • Ответ изменён 3 мес., 3 нед. назад пользователем  comoq.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Прошу объяснить, почему при наличии в коде указания на страницу исполнения, вылетает сообщение о невозможности её найти.

    1. 
      <label for="name">Name: </label><br/>
      <input type="text" name="name" id="name" placeholder="Your full name" autofocus required>
      

      name — одна из зарезервированных переменных в WordPress, движок вместо обработки формы будет пытаться найти запись с указанным значением. Стоит поменять, например, на full_name:

      
      <label for="full_name">Name: </label><br/>
      <input type="text" name="full_name" id="full_name" placeholder="Your full name" autofocus required>
      
    2. 
      <form name="form2json" method="post" action="http://anketa.org/json/">
      

      Вместо http://anketa.org/json/ должен быть либо адрес текущей страницы, либо пустой атрибут (тогда браузер при отправке формы сам подставит адрес текущей страницы).

    @sergeybiryukov как ни странно, но http://anketa.org/json/ это и есть адрес страницы, на которой исполняется код, т.е. она текущая, вдобавок, до этого атрибут был пустым
    <form name="form2json" method="post" action="">
    Но Вы оказались правы по поводу зарезервированных переменных, изменив name на full name переходы в никуда прекратились, сабмит сработал, вот только echo не выполнилось, форма в *.json не скачалась, как так? ошибка в коде?

    • Ответ изменён 3 мес., 3 нед. назад пользователем  comoq.
    • Ответ изменён 3 мес., 3 нед. назад пользователем  comoq.
Просмотр 4 ответов — с 1 по 4 (всего 4)