Передача переменной с помощью JavaScript Ajax jQuery в PHP - PullRequest
0 голосов
/ 19 октября 2019

Я искал рекомендованные вопросы, и мой код, кажется, правильный, но он

Вот мой HTML-код сначала с внедренным кодом JS

<form>
    <input id="inhalt" type="text" name="eingabe">
    <button type="button" id="button" value="bestätigen">Transfer</button>
</form>
<script>
    $('#button').click(function(){
        var variableAjax = $('#inhalt').val();
        console.log(variableAjax);
        $.ajax({
            type:"POST",
            url: "html.php",
            data: {
                variableAjax : variableAjax,
            },
            success: function(data){
                console.log("hallo"+data);
            }
        });
    });
</script>

Сайт PHP

<?php


if(!empty($_POST['variableAjax'])){
    $name = mysqli_real_escape_string($_POST['variableAjax']);
}

var_dump($name);
?>

Консоль браузера. Я вижу введенное значение. Я также ввел требуемый cdn

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

У меня также есть следующая информация в сети моего браузера

304
    GET 
localhost   html.html?eingabe=dfadfads  document    html    Aus Cache   833 B
304
    GET 
ajax.googleapis.com jquery.min.js   script  js  Aus Cache   0 B
200
    GET 
localhost   favicon.ico img x-icon  Aus Cache   30,17 KB
200
    POST    
localhost   html.php

На сайте PHPЯ получаю эту информацию

Notice: Undefined variable: name in C:\xampp\htdocs\dashboard\YOUTUBE\TEST\html.php on line 8
NULL 

Ответы [ 3 ]

0 голосов
/ 19 октября 2019

Все просто: вам нужно понять, как правильно назвать ключ в кавычках.

в javascript:

$.ajax({
 type:"POST",
 url: "http://some_base_path/html.php",
 data: {
  "static_key" : variableAjax, //here is the magic
 },
 success: function(response){
  console.log("Raw - "+ response);
 },
 error: function (jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }
    console.log(msg);
}
});

в PHP:

<?php
echo $_POST['static_key'];
?>

Надеюсь, что это решение поможет вам понять

Использование: функция ошибки вместо использования try / catch. Функция error работает почти так же.

Примечание: чтобы узнать больше о ключах объектов с кавычками и без кавычек нажмите здесь .

0 голосов
/ 19 октября 2019

Добро пожаловать и получайте удовольствие от кодирования!

Вы получаете ошибку на стороне PHP, что означает, что вы успешно сделали вызов AJAX с правильным файлом.

$ name объявлено и определите, еслиblock и, следовательно, он не распознается за пределами блока if.

Вам необходимо объявить его перед оператором if.

 $name = '';

    if(!empty($_POST['variableAjax'])){
        $name = mysqli_real_escape_string($_POST['variableAjax']);
    }

    var_dump($name);

Теперь вы можете получить доступ к $ name после установки.

Остальная часть потока верна, иначе вы не получите ошибку с неопределенной ошибкой $ name.

0 голосов
/ 19 октября 2019
  • При прямом доступе к html.php вы обязательно получите undefined $name, потому что вы установили $name в условии if

  • Я думаю, что проблеманаходится в соединении между js и php файлом. Для этого используйте полный URL-адрес в ajax url что-то вроде.


 type:"POST",
 url: "http://localhost/YOUTUBE/TEST/html.php"; //<<<< Type here the full url to your `html.php` file

Чтобы уточнить .. если у вас есть ajax в файле js, которыйрасположенный в js/js/file.js и связанный с index.php с помощью <script src="js/js/file.js"></script>, вам нужно запустить URL-адрес ajax из index.php файла

Также будет лучше проверить variableAjaxпрежде чем запустить AJAX

if(variableAjax && variableAjax !== ''){
   $.ajax{ .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...