Как использовать метод jquery $.post() для отправки значений формы
У меня есть 1 главная страница с формой и другой страницей для обработки значения формы
здесь приведены исходные коды 2 страниц
Страница формы:
<meta charset="UTF-8">
<title>Form Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="process.php" method="post" id="reg-form">
Username: <input type="text" id="username" name="username">
<br>
Password: <input type="password" id="password" name="password">
<br>
<button type="submit" id="submit-btn">Traditional Submit</button>
<button type="button" id="post-btn">$.Post Submit</button>
</form>
<script>
$("#post-btn").click(function(){
$.post("process.php",function(data){
alert(data);
});
});
</script>
Страница процесса:
<?php
$username=$_POST["username"];
$password=$_POST["password"];
echo "Username: ".$username;
echo "<br>";
echo "Password: ".$password;?>
если я нажимаю кнопку "Традиционная отправка", он работает отлично.
но когда я нажимаю кнопку "$.Post Submit", я просто получаю сообщение об ошибке msg "Notice: Undefined Index..."
Я не могу понять, где проблема, пожалуйста, пожалуйста, помогите проверить и исправить, спасибо заранее!
Ответы
Ответ 1
Вы также должны выбрать и отправить данные формы:
$("#post-btn").click(function(){
$.post("process.php", $("#reg-form").serialize(), function(data) {
alert(data);
});
});
Взгляните на документацию для метода jQuery serialize
, который кодирует данные из полей формы в строку данных, которая должна быть отправлена на сервер.
Ответ 2
Получите значение ваших текстовых полей с помощью val()
и сохраните их в переменной. Передайте эти значения через $.post
. При использовании $.Post Submit button
вы можете удалить форму.
<script>
username = $("#username").val();
password = $("#password").val();
$("#post-btn").click(function(){
$.post("process.php", { username:username, password:password } ,function(data){
alert(data);
});
});
</script>
Ответ 3
Yor $.post
не имеет данных. Вам необходимо передать данные формы. Вы можете использовать serialize()
для публикации данных формы. Попробуйте это
$("#post-btn").click(function(){
$.post("process.php", $('#reg-form').serialize() ,function(data){
alert(data);
});
});