Задать вопрос
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    Дмитрий, да с логикой у меня проблемы ^D
    Попытаюсь объяснить по-другому, есть input в index.php

    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">


    На него повешен вывод через Ajax статей из БД
    Так вот мне нужно, чтобы пользователей сайта могло переадресовать на страницу search.php
    Как только я добавляю вот так:

    <form><input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search"></form>


    Так работает, а вот без тега form не работает ...
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    WP Panda, благодарю за развернутый код, так тоже работает, но input не сабмится на search.php

    Вы не думали, что так input не отправится?

    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">


    А вот так отправится:

    <form>
    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">
    </form>


    Так вот, я уже даже не знаю, как сделать так, чтобы первый вариант не только нашел данные, но и отправил их
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    Дмитрий, короче мне нужно отправить с данного input

    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">


    У меня изначально было вот так:

    jQuery(document).ready(function(){
    	$('.myclass').keyup(function(eventObject){
    		var searchTerm = $.trim($(this).val());
    		if(searchTerm.length > 2){
    			$.ajax({
    				url : '/wp-admin/admin-ajax.php',
    				type: 'POST',
    				data:{
    					'action':' ajax_search',
    					'term'  :searchTerm
    				},
    				success:function(result){
    				} });
    		}
    });


    Я вызываю функцию ajax_search, которая находится в function.php и передает в wp_query()
    $args = array( 
    		'post_type'        => 'any', 
    		'post_status'      => 'publish', 
    		'order'            => 'DESC', 
    		'orderby'          => 'date', 
    		's'                => $_POST['term'], 
    		'posts_per_page'   => 5 
    	); 
    	$query = new WP_Query( $args );
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    Дмитрий, я знаю как это все работает
    Мне get_search_form() не нужна, а wp_query() только выводит из БД данные, но не отправляет их без тега form
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    WP Panda, вы не поняли
    Wp_query() у меня есть и она прописана в function.php, только функционал у нее не очень
    К примеру данная функция может выводить статьи, а отправлять их просто вот так не сможет:

    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">


    P.S.
    Вот так конечно же сможет:

    <form>
    <input class="myclass" placeholder="Поиск" type="text" value="" name="s" id="search">
    </form>


    Или покажите мне наглядный пример, как можно отправлять поисковые формы без тега form
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    Ну так в wp такого функционала нету и вы его толком не реализуете, а этот скрипт работает с помощью get_search_form()
    Все привыкли форму поиска вызывать через get_search_form() со всякими тегами form, а вот я не хочу всякие теги form
    А если вы знаете как использовать свои input-ы без использования get_search_form(), то могли бы минимально показать ...
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    ThunderCat, все существует, просто файла searchform.php как раз таки в index.php нету и он и отвечает за данную строчку, т.к. в нем эти классы и id
    И вопрос как раз таки в этом, только я не знаю, как через searchform.php вытащить
    Вроде этот код уже в Network загружает searchform.php
    jQuery(document).ready(function(){
    	$('.myclass').keyup(function(eventObject){
    		var searchTerm = $.trim($(this).val());
    		if(searchTerm.length > 2){
    			$.ajax({
    				url : '/wp-admin/admin-ajax.php',
    				type: 'POST',
    				data:{
    					'action':'codyshop_ajax_search',
    					'term'  :searchTerm
    				},
    				success:function(result){
    
    					$.ajax({ 
    						url : 'wp-content/themes/папка с темой/searchform.php',
    						type: 'POST',
    						data:{
    							'term'  :searchTerm
    						},
    						success:function() {
    							$('#sendform input[name="s"]').submit().val();
    						}
    					});
    					
    				} });
    			// if(eventObject.keyCode == 13){
    					// $('#sendform input[name="s"]').val(searchTerm);
    					// goSubmit();
    					// return;
    			// }
    			};
    	$("#mybutton").click(function(){
    		if(($('#sendform input[name="s"]').val($('.search-field').val()).length) == 0) {
    			return false;
    		} else {
    			$('#sendform input[name="s"]').val($('.search-field').val());
    			goSubmit();
    		}
    	}) });
    	function goSubmit(){
    		if(($('#sendform input[name="s"]').val().length) == 0){
    			return false;
    		} else {
    			$('#sendform').submit();
    		}
    	}
    });


    Но как в goSubmit() засунуть данные от searchform.php я не знаю, ajax его загрузил - теперь нужно отправить все это добро с помощью submit
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    ThunderCat, пишет вот что:

    my-ajax.js?ver=5.0.3:38 Uncaught TypeError: Cannot read property 'length' of undefined
    at goSubmit (my-ajax.js?ver=5.0.3:38)
  • Где может быть ошибка?

    @Genri_Rus Автор вопроса
    Dima Polos, это уже давным-давно уже есть, где может быт ошибка в самом скрипте js?
  • Как обратиться к главной форме и передать ей данные с другого input?

    @Genri_Rus Автор вопроса
    DanKud, мне нужно отправить форму на search.php с GET ключом s, а не только возможность выводить статьи на странице при помощи admin-ajax.php, ?s=тут поисковой запрос
  • Как обратиться к главной форме и передать ей данные с другого input?

    @Genri_Rus Автор вопроса
    DanKud, вот так почему-то не работает

    jQuery(document).ready(function(){
    	$('.myclass').keyup(function(eventObject){
    		var searchTerm = $.trim($(this).val());
    		if(searchTerm.length > 2){
    				if(eventObject.keyCode == 13){
    					$('#sendform input[name="s"]').val(searchTerm);
    					goSubmit();
    					return;
    				}
    			$.ajax({ 
    				type: 'GET',
    				url: <?php echo home_url(); ?>,
    				data: {
    					s: $('#search').val(),
    					'term'  :searchTerm
    				},
    				success: function(data) {
    					$.ajax({
    						url : '/wp-admin/admin-ajax.php',
    						type: 'POST',
    						data:{
    							'action': вызываю функцию, которая находится в function.php для поиска статей',
    							'term'  :searchTerm
    						},
    						success:function(result){
    						} });
    				}
    			});
    		};
    	$("#mybutton").click(function(){
    		if(($('#sendform input[name="s"]').val($('.myclass').val()).length) == 0) {
    			return false;
    		} else {
    			$('#sendform input[name="s"]').val($('.myclass').val());
    			goSubmit();
    		}
    	}) });
    	function goSubmit(){
    			if(($('#sendform input[name="s"]').val().length) == 0){
    				return false;
    			} else {
    				$('#sendform').submit();
    			}
    		}
    	}
    });
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей, я попытался сделать так, но все равно почему-то не переадресует

    jQuery(document).ready(function(){
    	$('.myclass').keyup(function(eventObject){
    		var searchTerm = $.trim($(this).val());
    		if(searchTerm.length > 2){
    				if(eventObject.keyCode == 13){
    					$('#sendform input[name="s"]').val(searchTerm);
    					goSubmit();
    					return;
    				}
    			$.ajax({ 
    				type: 'GET',
    				url: '/wp-content/themes/папка с темой/searchform.php',
    				data: {
    					s: $('#search').val(),
    					'term'  :searchTerm
    				},
    				success: function(data) {
    					$.ajax({
    						url : '/wp-admin/admin-ajax.php',
    						type: 'POST',
    						data:{
    							'action': 'вызываю функцию, которая находится в function.php для поиска' статей,
    							'term'  :searchTerm
    						},
    						success:function(result){
    						} });
    				}
    			});
    		};
    	$("#mybutton").click(function(){
    		if(($('#sendform input[name="s"]').val($('.myclass').val()).length) == 0) {
    			return false;
    		} else {
    			$('#sendform input[name="s"]').val($('.myclass').val());
    			goSubmit();
    		}
    	}) });
    	function goSubmit(){
    			if(($('#sendform input[name="s"]').val().length) == 0){
    				return false;
    			} else {
    				$('#sendform').submit();
    			}
    		}
    	}
    });
  • Как обратиться к главной форме и передать ей данные с другого input?

    @Genri_Rus Автор вопроса
    Все есть, просто не до конца код дописал:

    jQuery(document).ready(function($){
      $('.myclass').keyup(function(eventObject){
        console.log("!")
        var searchTerm = $(this).val();
        if(searchTerm.length > 2){    
          if(eventObject.keyCode == 13){
          	$('#sendform input[name="s"]').val(searchTerm);
            goSubmit();
            return;
          }
          $.ajax({
          url : '/wp-admin/admin-ajax.php',
          type: 'POST',
          data:{
            'action':'',
            'term'  :searchTerm
          },
          success:function(result){
          } });
        }
      $("#mybutton").click(function(){
       if(($('#sendform input[name="s"]').val().length) == 0){
          return false;
        } else {
          	$('#sendform input[name="s"]').val($('.myclass').val());
       	  goSubmit();
        }
      }) });
       function goSubmit(){
       		if(($('#sendform input[name="s"]').val().length) == 0){
            return false;
          } else {
            $('#sendform').submit();
          }
        }
    });
  • Как обратиться к главной форме и передать ей данные с другого input?

    @Genri_Rus Автор вопроса
    DanKud, вот мой код:

    jQuery(document).ready(function($){
      $('.myclass').keyup(function(eventObject){
        console.log("!")
        var searchTerm = $(this).val();
        if(searchTerm.length > 2){    
          if(eventObject.keyCode == 13){
          	$('#sendform input[name="s"]').val(searchTerm);
            goSubmit();
            return;
          }
          $.ajax({
          url : <?php echo home_url(); ?>,
          type: 'POST',
          data:{
            'action':'',
            'term'  :searchTerm
          },
          success:function(result){
          } });
        }
      $("#mybutton").click(function(){
       if(($('#sendform input[name="s"]').val().length) == 0){
          return false;
        } else {
          	$('#sendform input[name="s"]').val($('.myclass').val());
       	  goSubmit();
        }
      }) });
       function goSubmit(){
       		if(($('#sendform input[name="s"]').val().length) == 0){
            return false;
          } else {
            $('#sendform').submit();
          }
        }
    });


    Мне нужно проверить данную форму с id="#sendform" из searchform.php, что посоветуете сделать ?
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей, ну все когда-то много чего-то не понимали и им кто-то помогал )
    Так легко конечно, когда уже много чего знаешь, да и никто в интернете об этом особо и не пишет (
    Так что можете помочь мне ? (
    Мне нужно хотя бы этот функционал, на большее я пока что не способен
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей,
    data:{
            'action':'',
            'term'  :searchTerm
          },

    В action вызывать функцию goSubmit() ?
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей, сейчас у меня опять начнется путаница

    Примерно вот так нужно ?

    jQuery(document).ready(function($){
      $('.myclass').keyup(function(eventObject){
        console.log("!")
        var searchTerm = $(this).val();
        if(searchTerm.length > 2){
          if ($('#sendform input[name="s"]').val(searchTerm) == undefined) {
            $.ajax({
            url : '/searchform.php',
            type: 'POST',
         )}
          if(eventObject.keyCode == 13){
          	$('#sendform input[name="s"]').val(searchTerm);
            goSubmit();
            return;
          }
          $.ajax({
          url : '/wp-admin/admin-ajax.php',
          type: 'POST',
          data:{
            'action':'',
            'term'  :searchTerm
          },
          success:function(result){
          } });
        }
       }
      $("#mybutton").click(function(){
       if(($('#sendform input[name="s"]').val().length) == 0){
          return false;
        } else {
          	$('#sendform input[name="s"]').val($('.myclass').val());
       	  goSubmit();
        }
      }) });
       function goSubmit(){
       		if(($('#sendform input[name="s"]').val().length) == 0){
            return false;
          } else {
            $('#sendform').submit();
          }
        }
    });
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей,
    либо проверять что $('#sendform input[name="s"]') существует перед проверкой значения.

    Мне нужно чтобы в главную форму, которая находится в searchform.php подставлялись разные данные с различных input-ов - это может быть: index.php и прочие варианты

    А можно сделать в самом js файле проверку (который мы с вами обсуждали выше), что если $('#sendform input[name="s"]') не находит к примеру в index.php, чтобы он обратился и подключил searchform.php ?

    Хотелось бы какой-нибудь пример, чтобы знать куда копать )
    Лайк конечно же поставлю !
  • Как отправить данные с другого input без использования тега form?

    @Genri_Rus Автор вопроса
    Андрей, добрый вечер, короче у меня снова проблема (
    Только выяснил, что если не вызывать главную форму в index.php, get запрос не переадресует на главную форму searchform.php
    У меня input находится в index.php, но там же был подключен сайдбар главной формы, если я удалю сайдбар в index.php, то в консоли выйдет вот такая вот ошибка:

    my-ajax.js?ver=5.0.3:38 Uncaught TypeError: Cannot read property 'length' of undefined
    at goSubmit (my-ajax.js?ver=5.0.3:38)


    То есть этот код якобы не определен
    if(($('#sendform input[name="s"]').val().length) == 0)


    Как заставить увидеть форму, если главный шаблон существует, но он не выведен index.php ?
  • Как вывести на главной странице только родительские рубрики?

    @Genri_Rus Автор вопроса
    Antony Tkachenko, ну я так понял, что $rubrics пустая после инициализации ?
    Это для защиты от всяких доп. атак ?