Форумы портала PHP.SU » » Вопросы новичков » Не работает функция в форме

Страниц (4): [1] 2 3 4 »
 

1. rasl89 - 05 Октября, 2020 - 20:02:29 - перейти к сообщению
Всем привет.
Есть такая форма с функцией:

CODE (html):
скопировать код в буфер обмена
  1. <form class="post" role="form">
  2.  
  3.                 <div class="fre-input-field">
  4.                     <label class="fre-field-title">Метатеги через запятую (не обязательно)</label>
  5.                     <input class="input-item text-field" type="text" name="addtags" value="<?= $addtags ?>">
  6.                 </div>
  7.  
  8.  
  9.                 <div class="fre-post-project-btn">
  10.                     <button class="fre-btn fre-post-project-next-btn primary-bg-color" type="submit" name="submittag"><?php _e("Submit Project", ET_DOMAIN); ?></button>
  11.                 </div>
  12.             </div>

PHP:
скопировать код в буфер обмена
  1.  
  2.             <?
  3.             if (isset($_POST['submittag']) && isset($_POST['addtags'])) {
  4.                 wp_set_post_tags($id, $_POST['addtags'], true );
  5.             }
  6.             ?>



т.е. если поле addtags заполнено и нажата кнопка submittag, то выполнить функцию wp_set_post_tags

что не так? не работает(
$id поста есть если что, просто тут не указал...самое условие не выполняется...
2. LIME - 05 Октября, 2020 - 21:27:30 - перейти к сообщению
а короткие теги точно разрешены?
3. rasl89 - 06 Октября, 2020 - 21:56:45 - перейти к сообщению
LIME пишет:
а короткие теги точно разрешены?


даже и не с короткими не работает((
4. rasl89 - 06 Октября, 2020 - 21:58:56 - перейти к сообщению
Приложил полный файл
5. Vladimir Kheifets - 07 Октября, 2020 - 09:19:07 - перейти к сообщению
rasl89 пишет:
Приложил полный файл

Добрый день!
У Вас в тэге form нужно добавить атрибут method="post".
По умолчанию, как у Вас, method="get".
Удачи!
6. rasl89 - 07 Октября, 2020 - 19:59:12 - перейти к сообщению
Vladimir Kheifets пишет:
rasl89 пишет:
Приложил полный файл

Добрый день!
У Вас в тэге form нужно добавить атрибут method="post".
По умолчанию, как у Вас, method="get".
Удачи!


Добрый день.
Да, действительно, но не помогло.
7. Vladimir Kheifets - 08 Октября, 2020 - 07:39:10 - перейти к сообщению
rasl89 пишет:
Vladimir Kheifets пишет:
rasl89 пишет:
Приложил полный файл

Добрый день!
У Вас в тэге form нужно добавить атрибут method="post".
По умолчанию, как у Вас, method="get".
Удачи!


Добрый день.
Да, действительно, но не помогло.


Добрый день!
Тогда начнём с начала.
Вы задали вопрос - почему не работает функция?
Цитата:
<?
if (isset($_POST['submittag']) && isset($_POST['addtags']))
{
wp_set_post_tags($id, $_POST['addtags'], true );
}
?>

У Вас либо условие не выполняется т.е. не работает form submit, либо не работает функция.
Допустим, что у Вас error_reporting(E_ALL), в PHP нет ошибок и проблема с формой.
Вы вставляли print_r($_POST)?
Если окажется, что $_POST['addtags'] и.т.п не определены, то советую проверить:
1. action и target формы - куда на самом деле отправляются данные.
2. js-script - нет ли там addEventListener для тэга submit, например:
CODE (javascript):
скопировать код в буфер обмена
  1. var el=document.getElementsByTagName("submit")[0];
  2. el.addEventListener("click", FormValidation, false);
Если в js нет addEventListener, то можно попробовать добавить:
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2. var el=document.getElementsByTagName("submit")[0];
  3. el.addEventListener("click", FormValidation, false);
  4. function FormValidation(){
  5. f=document.getElementsByTagName("form")[0];
  6. buf="action:"+f.action+"\n";
  7. buf+="target:"+f.target+"\n";
  8. n=f.elements.length;
  9. for(i=0; i<n; i++)
  10. {
  11.  buf+=i+":"+f.elements[i].name+":"+f.elements[i].value+"\n";
  12. }
  13. alert(buf);
  14. }
  15. </script>
Удачи!
p.s. Здесь $addtags не определена
Цитата:
<input class="input-item text-field" type="text" name="addtags" value="<?= $addtags ?>">
видимо должно быть $_POST['addtags']
8. rasl89 - 08 Октября, 2020 - 22:00:53 - перейти к сообщению
Цитата:
видимо должно быть $_POST['addtags']

по разному пробовал, не работает, в принципе как есть должно работать

Цитата:
js-script - нет ли там addEventListener для тэга submit,

не было, пробовал добавить не помогло

Цитата:
action и target формы - куда на самом деле отправляются данные.

так у меня в форме ведь нет ни того ни того
(Добавление)
сама функция работает, не работает условие IF
9. LIME - 09 Октября, 2020 - 01:09:16 - перейти к сообщению
chrome -> f12 -> сеть
смотри что улетает
https://learn[dot]javascript[dot]ru/devtools
Vladimir Kheifets пишет:
Допустим, что у Вас error_reporting(E_ALL)
почему? я склонен допустить обратное
var_dump($_POST);
http://phpfaq[dot]ru/debug
10. rasl89 - 09 Октября, 2020 - 16:45:38 - перейти к сообщению
LIME пишет:
chrome -> f12 -> сеть
смотри что улетает


мой отправки тут нет
11. rasl89 - 09 Октября, 2020 - 16:46:38 - перейти к сообщению
продолжение
12. LIME - 09 Октября, 2020 - 16:59:28 - перейти к сообщению
выбери только Doc и XHR через Ctrl
и отметь Preserve log
как в русском я не знаю
потом кликай или что там
13. rasl89 - 09 Октября, 2020 - 22:19:01 - перейти к сообщению
LIME пишет:
выбери только Doc и XHR через Ctrl
и отметь Preserve log
как в русском я не знаю
потом кликай или что там


cделал, вот что вышло, приложил скрин
14. LIME - 09 Октября, 2020 - 22:27:00 - перейти к сообщению
сердечно поздравляю
(Добавление)
аа... дальше кликай на нужный запрос и смотри
и сам разбирайся
не с ложечки же тебя кормить
думал тебе будет достаточно намека на существующий инструмент для просмотра запросов
чтоб понимать что улетает
и var_dump чтоб видеть что прилетает
15. rasl89 - 09 Октября, 2020 - 22:50:35 - перейти к сообщению
Цитата:
думал тебе будет достаточно намека на существующий инструмент для просмотра запросов


жаль но нет(
попробую разобраться
(Добавление)
НО я протестил через дебаггер
и мне выдало ошибку:
PHP Notice: Undefined variable: addtags in /C:/Webserver/OSPanel/domains/sporim2/wp-content/themes/freelanceengine/template/post-project-step3.php on line 115

на строку:
CODE (html):
скопировать код в буфер обмена
  1. <input class="input-item text-field" type="text" name="addtags" value="<?= $addtags ?>">

 

Powered by ExBB FM 1.0 RC1