Подтвердить что ты не робот

Как использовать метод 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..."

Я не могу понять, где проблема, пожалуйста, пожалуйста, помогите проверить и исправить, спасибо заранее!

4b9b3361

Ответ 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);
    });
});