получить данные из базы данных на основе php $ _GET var с помощью jquery / ajax? - PullRequest
1 голос
/ 26 июля 2011

Отказ от ответственности

Я искал дубликаты, но не могу их найти.Я удивлен, потому что это кажется большой проблемой.Скорее всего, я упускаю что-то большое.

Проблема / Вопрос

У меня userid, переданный через URL через php, myOtherScript.php?userid=1,Как я могу получить эту переменную для передачи через ajax, чтобы я мог запросить базу данных с этим userid, вывести ее на экран и вернуть на страницу?

Это в global.js файле

jQuery

$.ajax({
    url: "myScript.php",
    data: "userid="  - This is what I need: $_GET['userid'] - ,
    success: function( data ) {
        $('#myDiv').html( data );
    }
});

Решение

сс помощью bstakes и этого ответа, я смог понять это с помощью этой функции: (верхний ответ)

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if(results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}

Спасибо за ответы, ребята!

Ответы [ 4 ]

2 голосов
/ 26 июля 2011
$.ajax({
    url: "myScript.php",
    data: "userid=<?php echo intval($_GET['userid']); ?>",
    success: function( data ) {
        $('#myDiv').html( data );
    }
});
1 голос
/ 26 июля 2011

Вы также можете попробовать использовать атрибут поиска объекта window.location.

Если URL-адрес равен http://www.mysite.com/display.php?userid=7 window.location.search вернет "? Userid = 7".Вам, очевидно, нужно будет удалить ведущий «?», Но помните, что если есть дополнительные параметры GET, разделенные амперсандом и «&», они также будут включены.

Итак, добавив немного дополнительного Javascript, вы можете разделить на '&', который получит массив "key = val", затем вы можете пролить на знак равенства и создать объект с {ключ: val}.Затем вы можете использовать этот объект для доступа к параметрам строки запроса.

var qs = window.location.search.substring(1),
    pieces = qs.split('&'),
    i,
    qsObj {},
    tmp;
for ( var i in pieces ) {
   tmp = pieces[i].split('=');
   qsObj[tmp[0]] = tmp[1];
}

См. https://developer.mozilla.org/En/Window.location для получения дополнительной информации о window.location.

1 голос
/ 26 июля 2011

Если вы хотите сохранить JS отдельно, поместите его в функцию, которая принимает идентификатор пользователя ...

function do_something(user_id) {
    $.ajax({
        url: "myScript.php",
        data: "userid=" + user_id,
        success: function( data ) {
            $('#myDiv').html( data );
        }
    });
}

Затем просто вызовите do_something($_GET['user_id']);

1 голос
/ 26 июля 2011

Возможно, вам придется переместить скрипт в файл PHP, а затем вывести $ _GET ['userid'] в области данных вашего вызова ajax.

только что нашел это: howполучить переменные GET и POST с помощью JQuery?

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