@Genri_Rus

Как отправить данные с другого input без использования тега form?

Всем доброго времени суток еще раз
Возникла небольшая проблема, у меня есть форма поиска в отдельном файле PHP
Собственно в шапке сайта есть input, который должен отправлять все запросы на файл PHP
<input class="myclass" placeholder="Поиск" type="text" value="" name="myname" id="myid">
<button type="submit" value=""></button>


Вопрос заключается в следующем, как мне отправить данную форму без использования самого тега form ?

Использовал различные варианты типа:
<input class="myclass" placeholder="Поиск" type="text" value="" name="myname" id="myid" onkeyup="if(key(event)==13){myfunction();}">
<button type="submit" value=""></button>


В самой функции прописывал вызов по id исходной PHP формы

Пример:

$("#myid").click(function myfunction() {
    $("#myform").submit();
  });


Мне нужно именно сделать так, чтобы submit у кнопки и input срабатывал при нажатии 13 клавиши, а именно клавиши Enter
  • Вопрос задан
  • 3150 просмотров
Решения вопроса 1
byte916
@byte916
Вам формы не нужны чтобы что-то отправить на сервер.
Если нужно добавить данные при нажатии на Enter, просто добавляете событие
$("#myid").on("keyup", function(event){
    if (event.which == 13)  //... тут код отправки данных
});


Отправку можно сделать с помощью ajax
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
<form id="someForm">
    ...
</form>

<button form="someForm" type="submit">жми сюда</button>
Ответ написан
@lolzqq
HTML,CSS,JS,PHP
в html-код вашей кнопки добавьте параметр accesskey="Enter" - тогда на нажатие Энтер - будет происходить нажатие кнопки вашей.
далее jquery.ajax
$(document).ready(function(){

  $("#кнопка").click(function(){
     $.ajax({
        type: 'POST',
        url: "адрес куда вы отправляете данные",
        // в кавычки ниже вы указываете строкой переменные и их значения, которые отсылаете серверу
        data: "var_input1=содержимое_блока_инпут1&var_input2=содержимое_блока_инпут2",
        success: function(data){ // в ответ сервер выдаёт вам какие-то данные, например html
        data=String(data);
        var pagetitle=data.replace(/^[\s\S]*<title.*?>|<\/title>[\s\S]*$/ig, ''); // находим заголовок

        var regexp=/<!--([\s\S]*?)-->/mig; // находим данные внутри тэга <body> и преобразуем в объект Jquery.
        data=data.replace(regexp,"");
        data='<div id="root">'+data.replace(/^[\s\S]*<body.*?>|<\/body>[\s\S]*$/ig, '')+'</div>';
        data=$(data);
        // далее вы уже можете внедрить в код вашей страницы детали ответа, если хотите
        }
     })
  });

})


Если вы хотите передать данные JSON
то вместо data в $.ajax нужно использовать processData

"По умолчанию, все передаваемые на сервер данные, предварительно преобразуются в строку (url-формата: fName1=value1&fName2=value2&...) соответствующую "application/x-www-form-urlencoded". Если вам необходимо отправить данные, которые нельзя подвергать подобной обработке (например документ-DOM), то следует отключить опцию processData. " jquery.page2page.ru/index.php5/Ajax-%D0%B7%D0%B0%D...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы