Получить данные по ссылке с помощью jquery ajax - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующая ссылка:

www.example.com / profile.php? U = aaron

Я хотел бы получить u= с использованием ajax для отображения сохраненных данныхс именем aaron в моей базе данных.Но когда я пытаюсь достичь этого с помощью своего кода AJAX, я получаю пустую страницу в качестве результата.

МОЙ КОД AJAX;

$(document).ready(function() {
    $.ajax({    
        type: "GET",
        url: "fetch.php",             
        data: "u=":usr,   
        success: function(d) {                    
             $("#detail").html(d); 
        }
    });
});

fetch.php;

<?php  
    // connect to db
    include 'db.php';

    if (isset($_GET['usr'])) {
        $user_query = "SELECT details FROM users_det WHERE name = ?";
        if ($stmt = mysqli_prepare($db_var, $user_query)) {
            mysqli_stmt_bind_param($stmt, "s", $_GET['usr']);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $details);
            while (mysqli_stmt_fetch($stmt)) {
                // fetch results
            }

            // close statement
            mysqli_stmt_close($stmt);
        }

        // echo user details
        echo $details;
    }
?>

МОЙ HTML-КОД;

<div id="detail"></div>

И СЛЕДУЮЩИЙ КОД PHP в МОЕМ HTML-КОДЕ;

  <?php 
    $user = preg_replace('#[^a-zA-Z0-9_.]#i','',$_GET['u']); 
    ?>

Я хотел бы знать, почему ajax не получает имя по ссылке.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

В вашем коде есть несколько ошибок

сначала вы должны использовать data: {u: usr}, вместо data: "u=":usr,

$(document).ready(function() {
    $.ajax({    
        type: "GET",
        url: "fetch.php",             
        data: {u: usr},   
        success: function(d) {                    
             $("#detail").html(d); 
        }
    });
});

секунду в fetch.php файле вы должны получить параметр $_GET['u']вместо $_GET['usr']

<?php  
    // connect to db
    include 'db.php';

    if (isset($_GET['u'])) {
        $user_query = "SELECT details FROM users_det WHERE name = ?";
        if ($stmt = mysqli_prepare($db_var, $user_query)) {
            mysqli_stmt_bind_param($stmt, "s", $_GET['u']); //also change `usr` in this line
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $details);
            while (mysqli_stmt_fetch($stmt)) {
                // fetch results
            }

            // close statement
            mysqli_stmt_close($stmt);
        }

        // echo user details
        echo $details;
    }
?>

для отладки вы можете использовать console.log(d) в ответе на успешное выполнение ajax

0 голосов
/ 16 октября 2018

Сначала получите полный URL-адрес с помощью window.location.href , создайте экземпляр объекта URL-адреса, затем получите его параметры через searchParams в javascript.

СКРИПТ:

var urlString = window.location.href; //www.example.com/profile.php?u=aaron
var url = new URL(urlString);
var usr = url.searchParams.get("u");

$(document).ready(function() {
    $.ajax({    
        type: "GET",
        url: "fetch.php",             
        data: "u="+usr,   
        success: function(d) {                    
             $("#detail").html(d); 
        }
    });
});

PHP:

<?php  
    // connect to db
    include 'db.php';

    if (isset($_GET['u'])) {
        $user_query = "SELECT details FROM users_det WHERE name = ?";
        if ($stmt = mysqli_prepare($db_var, $user_query)) {
            mysqli_stmt_bind_param($stmt, "s", $_GET['u']);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $details);
            while (mysqli_stmt_fetch($stmt)) {
                // fetch results
            }

            // close statement
            mysqli_stmt_close($stmt);
        }

        // echo user details
        echo $details;
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...