Перестал работать PHP-код, вызванный через JQuery - PullRequest
1 голос
/ 18 января 2010

Изначально я использовал файл .js, содержащий функции AJAX, для вызова файла .php. Файл .php содержит код для динамического заполнения DropDown на основе определенных параметров, передаваемых через QueryString.

Все отлично работает с вышеуказанным методом. Но теперь я хочу заполнить DropDowns при загрузке страницы и поэтому хочу использовать JQuery вместо моего старого метода. Я попробовал следующий код, но он не заполняет DropDown.

$.get("../Lib/filldropdown.php", 
                        { param1: "divMemberOf", param2: "inMemberOf", param3: "categorymaster" });

Ниже приведен код .php файла:

<?php
    require("dbconnection.php");
    require("dbaccess.php");

    $dropdownControlName = $_GET['DropDownControlName'];
    $query = ".....";
    dbconnection::OpenConnection();
    $result = dbaccess::GetRows($query);
?>
<select id="<?php echo $dropdownControlName; ?>" name="<?php echo $dropdownControlName; ?>">
<option>Select from the list</option>
<?php while($row=mysql_fetch_array($result))
{ ?>
    <option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>

<?php } ?>
</select>

Обратите внимание, что приведенный выше код JQuery передает три параметра, но я использовал только один в приведенном выше коде PHP. Я собираюсь использовать два параметра позже. Приведенный выше код PHP прекрасно работает с моим старым методом AJAX.

Ответы [ 3 ]

1 голос
/ 18 января 2010

Вам либо нужно добавить функцию обратного вызова, либо метод .load может быть более подходящим, поскольку вы просто хотите вставить результаты этого вызова PHP на страницу:

$("#someContainer").load("../Lib/filldropdown.php", 
                        { param1: "divMemberOf", 
                          param2: "inMemberOf", 
                          param3: "categorymaster" });

Вам просто нужен DIV или что-то другое, чтобы заполнить поле ввода.

1 голос
/ 18 января 2010

Вы не указали ключ правильно, чтобы ваш php работал как есть. В вашем javascript вы создаете запрос следующим образом: param1 = divMemberOf & param2 = inMemberOf & param3 = categorymaster

Я бы подумал , что вам нужно, чтобы один из этих параметров был назван DropDownControlName, поскольку вы используете его в качестве идентификатора для только что созданного ввода выбора. Вы также можете проверить param2 и param3, так как вы, вероятно, используете их в своем запросе.

1 голос
/ 18 января 2010

Вы делаете AJAX-запрос, используя GET, но не добавляете функцию обратного вызова для фактической обработки возвращенного HTML. Он исчезает в воздухе.

Ознакомьтесь с документацией JQuery AJAX по GET для полного примера.

Ваш звонок должен выглядеть примерно так:

$.get("../Lib/filldropdown.php", 
{ param1: "divMemberOf", param2: "inMemberOf", param3: "categorymaster" },
function(data) { $('#myDivID').html(data); }

);

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