在php的独立div中填充下拉菜单



在单独的div 中从php填充下拉菜单

我有一个函数search(),它使用ajax,并将许多值/变量(如color、itemtype等)作为"ajax_data"传递给php。

    $.ajax({
        url: 'phpmysql.php',
        data: ajax_data,
        success: function (data) {
            $('#searchresults').html(data);
        }
    }).error(function() {
        alert ('An error occurred');
    });

然后将搜索结果动态填充到#searchresults中。

我有一个下拉菜单(#pagemenu),我想动态显示当前搜索的页码,例如,如果下拉菜单上有10页从1到10的结果显示选项。

我在php中计算出了"每页结果"one_answers"总页数",并将它们设置为$per_page和$totalpages。

//forloop listing number of pages in dropdown
    for ($x=1; $x<=$totalpages; $x++) {
    echo "<option value=".$x.">".$x."</option>";
    }

因此,搜索结果被加载到#searchresults中,但我该如何将上面的for循环加载到单独div中的#pagemenu下拉列表中?我目前唯一能想到的方法是在主页中为下拉列表和forloop编写php,然后使用会话变量链接到php文件,但不确定这是否是个好主意。欢迎提出任何建议!感谢

坚持您的特定问题,即在服务器中创建下拉列表并在AJAX响应中返回它,您似乎需要在所述响应中返回两件事:数据和分页选项。

您可以做的一件事是返回一个包含这两个内容的Json对象,这样您就可以做这样的事情:

success: function (data) {
    $('#searchresults').html(data.result);
    $('#pagemnu').html(data.options);
}

从客户端实现这一点的方法之一是将dataType添加到json,因此data被解析为一个对象,并准备好如下使用:

$.ajax({
    dataType: 'json',
    url: 'phpmysql.php',
    data: ajax_data,
    success: function (data) {
        $('#searchresults').html(data.result);
        $('#pagemnu').html(data.options);
    }
}).error(function() {
        alert ('An error occurred');
});

在服务器端,您将用这两个结果填充一个数组,并将其作为JSON:返回

$result = array();
...
$result['searchResult'] = $theSearchResult;
$optionsHtml = '';
for ($x=1; $x<=$totalpages; $x++) {
    $optionsHtml .= "<option value=".$x.">".$x."</option>";
}
$result['options'] = $optionsHtml;
...
echo json_encode( $result ); 

最新更新