通过JQuery调用的PHP代码停止工作

时间:2010-01-18 13:06:36

标签: php jquery

最初,我使用包含AJAX函数的.js文件来调用.php文件。 .php文件包含基于通过QueryString传递的某些参数动态填充DropDown的代码。

使用上述方法一切正常。但现在我想在页面加载时填充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 个答案:

答案 0 :(得分:1)

您正在使用GET发出AJAX请求,但您没有添加回调函数来实际处理返回的HTML。它在空气中消失。

查看the JQuery AJAX documentation on GET以获取完整示例。

你的电话必须是这样的:

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

);

答案 1 :(得分:1)

您需要添加回调函数,或者.load方法可能更合适,因为您只想将该PHP调用的结果注入页面:

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

你只需要一些DIV或其他东西作为占位符来将选择框注入。

答案 2 :(得分:1)

您没有正确指定密钥以使您的PHP按原样工作。在您的JavaScript中,您正在创建这样的请求: 参数1 = divMemberOf&安培; param2的= inMemberOf&安培;参数3 = categorymaster

认为你需要将其中一个参数命名为DropDownControlName,因为你将它用作新创建的选择输入的id。您也可以检查param2和param3,因为您可能会在查询中使用它们。