Использование метода jauery .ajax () для отправки формы в PHP - PullRequest
3 голосов
/ 30 марта 2012

В настоящее время я работаю над формой, которая позволяет пользователю изменять свой пароль. И я не очень хорош с JQuery AJAX. Кажется, что ajax не отправляет данные в changepassword.php. Файл PHP работает нормально, когда я не использую ajax. Можете ли вы, ребята, помочь мне здесь немного?

Я обновил свои файлы в соответствии с некоторыми комментариями. Когда я пытаюсь отправить форму, она возвращает Doesn't Work. Так что я думаю, что php отвечает, но значение не попало в базу данных.

Большое спасибо за помощь, ребята.

Ниже приведена форма и AJAX (Обновлено)

        <form id="form_id" method="POST">
            <label for="username">Username</label>
            <input type="text" name="username" id="username" required />
            <label for="old_password">Old Password</label>
            <input type="password" name="old_password" id="old_password" required />
            <label for="new_password">New Password</label>
            <input type="password" name="new_password" id="new_password" required />
            <button class="submit">
                Submit
            </button>
            <p class="result"></p>
        </form>
        <script>
            $.ajaxSetup({
                cache : false
            });
            $(".submit").click(function(e) {
                $.ajax({
                    url : "changepassword.php",
                    type : "POST",
                    data : $("#form_id").serialize(),
                    success : function(data) {
                        if(data == 1) {
                            $(".result").html("Works");
                        } else {
                            $(".result").html("Doesn't Work");
                        }
                    }
                });
                return false;
            });

        </script>

А это changepassword.php (Обновлено)

    <?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);
include_once "../classes/Connect.php";
$connection = new Connect();
$username = $_POST['username'];
$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$result = $connection -> change_password($username, $old_password, $new_password);
if ($result) {
    echo 1;
}
    ?>

Это метод change_password() из connect.php файла класса

    function change_password($username, $old_password, $new_password){
    $query = "UPDATE Account SET password = ? WHERE username = ? AND password = ?";
    if ($stmt = $this -> conn -> prepare($query)){
        $stmt -> bind_param('sss', md5($new_password), $username, md5($old_password));
        if ($stmt -> execute()){
            return true;
        }
    }
}

1 Ответ

1 голос
/ 30 марта 2012

Ваш запрос на сервер успешен? Потому что я не уверен, но если весь запрос потерпит неудачу, то у вас не будет успеха, и jquery ajax (вероятно) будет искать функцию ошибки, но вы ее не предоставили - так что ничего не происходит ».

Об установке вашего свойства данных ajax, вероятно, вы можете сделать data: $('#form_id').serialize(), и thid = s создаст правильную строку для запроса - var1 = value1 & var2 = value2, но с меньшим количеством кода.

Если в вашем php-файле возникла проблема после session_start();, вставка следующего кода подскажет вам, что происходит не так:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);

Желаю тебе удачи. Ивелин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...