Как использовать ajax для передачи значений переменных в скрипт php? - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь использовать ajax и передать переменные из js в php, чтобы вставить их в таблицу mysql. приведенный ниже код успешно вызывает php-скрипт, но не передает данные

Я хотел бы передать «num» из следующей функции js в «insertRow.php» - функция активирует «insertRow.php», но не передает данные

function InsertToTable(num){
    var data=num;
    $.ajax({
        url: "insertRow.php",
        data: data,
        type: "POST"
        });

как только данные будут переданы, я хотел бы вставить их в таблицу mysql, следующее будет работать, если я не использую "$ num", а просто вместо этого введите значение

<?php
$num = $_Post['data'];
//print_r($_Post("data"));

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Schedule";   

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql ="INSERT INTO `temp1` (`column1`) VALUES ('$num')";

$conn->query($sql);     
?>

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Похоже на опечатку,

Insead из

$num = $_Post['data'];

Попробуйте

$num = $_POST['data'];

Кроме того, хорошей практикой является отправка AJAX возврата, так что в конце вы можете использовать

echo json_encode(true); 

Или установите его в значение false в случае ошибки, при этом вы можете увидеть, сработал запрос или нет в условии успеха AJAX.

Вот пример более сложного вызова AJAX.

            $.ajax({
                url: 'scripts/AjaxHandler/Controller.php',
                type: 'POST',
                dataType: 'JSON',
                data: {
                    action: 'doThis',
                    var1: var1,
                    var2: var2
                },
                success: function (data) {
                    if(data == true) {
                        alert('success');
                    }else{
                        alert('failure');
                    }
                },
                error: function (error) {
                    console.log(error);
                }
            });
0 голосов
/ 10 января 2019

Вы можете сделать это ...

data: {data : num},

ИЛИ, так как вы установили data = num;, вы можете сделать это:

data: {data: data},

Где первый data - идентификатор, а второй - значение.

Это даст вам доступ к данным в переменной POST (которая чувствительна к регистру):

$_POST['data'] // should be equal to num
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...