Хотите запустить PHP-запрос, когда кнопка отправки отправлена ​​с использованием AJAX - PullRequest
0 голосов
/ 13 июня 2018

Я хочу запустить запрос insert.php, если имя кнопки с "addUser" отправлено. Я не знаю, как передать параметр addUser name, используя AJAX для вставки файла .phpгде это проверить, если кнопка отправлена ​​или нет. если я удаляю , если оператор в файле insert.php это вставляет пользователей в базу данных, но если непосредственно посетить insert.php это вставка пустых записей в таблицу, я хочу предотвратить ввод пустых записей в таблицу, если я посещаю вставку.php напрямую.

index.html

<form method="post" id="addForm">
Username :<input type="text" name="username" id="userName" />
Passkey :<input type="password" name="passkey" id="passKey"/>
<br/>
<input type="submit" name="addUser" id="submitBtn" value="Inser New User"/>
</form>

<script>
    $("#addForm").submit(function(e){
        let userNameZ = $("#userName").val();
        let passKeyZ = $("#passKey").val();

          $.ajax({
            url:'insert.php',
            type:'POST',
            data: {userName:userNameZ,passKey:passKeyZ},
            success: function(resp) {
               if(resp == "inserted") {
                   $("#addForm").trigger("reset");
                    alert("New user inserted");
               } else {
                    alert("Something went wrong");
               }
            }
         });
    });
</script>

insert.php

<?php 
$conn = new PDO("mysql:host=localhost;dbname=test", "root", "");
if(isset($_POST['addUser'])){
    $userName = trim($_POST['userName']);
    $passKey = trim($_POST['passKey']);
        $query = "INSERT INTO users (username,passkey) VALUES (:userName,:passKey)";
        $stmt = $conn->prepare($query);
        $stmt->execute(array(':userName'=>$userName, ':passKey'=>$passKey));

    if($stmt) {
        echo "inserted";
    } else {
        echo "not inserted";
    }
}

?>

1 Ответ

0 голосов
/ 13 июня 2018

Измените if(isset($_POST['addUser'])){ на if(isset($_POST['userName']) && isset($_POST['passKey'])){

ИЛИ в ajax, измените

data: {userName:userNameZ,passKey:passKeyZ,addUser:1}, Примечание: ,addUser:1

Добавлениеответ на ваш комментарий

что если у меня будет более 10 значений для отправки

.

Вы можете использовать $("#addForm").serialize() и перейти непосредственно кданные.Нравится data: $("#addForm").serialize(),

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