2014-12-25 3 views
0

У меня есть форма с одним входом и одна кнопка отправки.Как предотвратить обновление страницы при отправке кнопки нажмите

<form method='POST' action='' enctype='multipart/form-data' id="form_search"> 
<input type='hidden' name="action" id="form_1" value='1' /> 
</span><input id="query" type="text" name="mol" value=""> 
<input type='submit' value='Search' name="Search" id="Search" /> 

по форме представления формы ввода данных идет в PHP ниже код

if (isset($_POST['Search'])) { 
$_SESSION["query"] = $_POST["mol"]; 
$_SESSION["action"] = $_POST["action"]; 
} 

я хочу, чтобы избежать обновления страницы по форме представления. я попробовал e.preventDefault() и возвратил false; методов в моем java-скрипте, но не работает (эти методы помогают мне обновить страницу, но не позволяют мне отправлять данные в php-код)

, пожалуйста, помогите мне решить эту проблему, пожалуйста, предложите рабочий код ajax для этой проблемы.

+0

Вам просто нужно предотвратить отправку формы по умолчанию с помощью return false или e.preventDefault(). И отправьте свою информацию о форме на сторону PHP через AJAX –

+0

Привет, @Hossein Sh, можете ли вы предоставить мне код ajax для отправки информации о форме на сторону PHP (как вы упомянули). Пожалуйста, предоставьте мне рабочий код. – sujit

+0

Привет @sugit, Точно я не знаю, что вы имеете в виду. Но, как я понимаю, вы можете собирать входы и отправлять их как данные JSON, или сериализовать данные своей формы и отправлять их снова как JSON в ваш PHP-файл и обращаться к нему с помощью '$ _POST' или' $ _GET' –

ответ

4

Обновить страницу удалит вас предыдущие данные так, чтобы заказать его можно использовать $ .post() или $ .ajax()

Вы можете предотвратить страницу освежающей, добавив одну из этих двух вещей, в функции обработчика событий

для чистого JS

return false; 

для JQuery вы можете использовать

e.preventDefault(); // e is passed to handler 

Ваш полный код будет что-то вроде

с использованием $ .post() в JS

function checkfunction(obj){ 
$.post("your_url.php",$(obj).serialize(),function(data){ 
alert("success"); 
}); 
return false; 
} 

HTML

<input type='submit' onclick="return checkfunction(this)" /> 

или же эффект с onsubmit

<form onsubmit="return checkfunction(this)" method="post"> 
+0

У меня есть «сообщение», метод в форме. return false; и e.preventDefault(); функции, не позволяющие мне отправлять значения в php-код. – sujit

+0

это будет работать для этого @sujit –

+0

downvoter why Downvote? –

0

Без ajax вы можете просто добавить проверенный атрибут в PHP. Так, например, если ваша группа радио имеет имя radio и один имеет значение a, другой b:

<?php 
$a_checked = $_POST['radio'] === 'a'; 
$b_checked = $_POST['radio'] === 'b'; 
?> 

<input type="radio" name="radio" value="a"<?=($a_checked ? ' checked' : '')?>></input> 
<input type="radio" name="radio" value="b"<?=($b_checked ? ' checked' : '')?>></input> 

Таким образом, когда пользователь отправляет форму и отображать его снова, это будет как пользователь представил его даже страница обновляется.

0
<input type="radio" name="rbutton" id="r1">R1 
<input type="radio" name="rbutton" id="r2">R2 
<input type="button" id="go" value="SUBMIT" /> 
<div id="result"></div> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 
    $('#go').click(function(){ 
     var val1 = $('input:radio[name=rbutton]:checked').val(); 
     var datastring = "partialName="+val1; 
     $.ajax({ 
      url: "search.php", 
      type: "POST", 
      data: datastring, 
      success: function(data) 
      { 
       $("#result").html(data); 
      } 
     }); 
    }); 
}); 
</script> 
Смежные вопросы