Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery是否在数据库中可排序和序列化?_Php_Jquery_Arrays - Fatal编程技术网

Php jquery是否在数据库中可排序和序列化?

Php jquery是否在数据库中可排序和序列化?,php,jquery,arrays,Php,Jquery,Arrays,我即将完成这项工作,但我一直在研究如何从数据库中获取值,并使用正确的链接以正确的顺序显示 到目前为止,我有: HTML <ul id="navMenu"> <li id="navMenu_1"><a href="http://www.example.com/home">Your Home</a></li> <li id="navMenu_2"><a href="#">Preferences

我即将完成这项工作,但我一直在研究如何从数据库中获取值,并使用正确的链接以正确的顺序显示
  • 到目前为止,我有:

    HTML

        <ul id="navMenu">
        <li id="navMenu_1"><a href="http://www.example.com/home">Your Home</a></li>
        <li id="navMenu_2"><a href="#">Preferences</a></li>
        <li id="navMenu_3"><a href="#">Your Mailbox</a></li>
        <li id="navMenu_4"><a href="#">Game Updates</a></li>
        <li id="navMenu_5"><a href="#">Message Boards</a></li>
    </ul>
    
    ajaxphp

    if (isset($_REQUEST['navMenuLayout'])) {
    
    session_start();
    $q = $dbc -> prepare("UPDATE layout SET navMenu = ? WHERE id = ?");
    $q -> execute(array($_REQUEST['navMenuLayout'], $_SESSION['id']));
    }
    
    当用户更改列表顺序时,一切正常,我会将这样的字符串保存到我的数据库中

    navMenu[]=3&navMenu[]=1&navMenu[]=5&navMenu[]=2&navMenu[]=4
    

    在数据库中存储这些内容之后,我如何让php以正确的顺序回显上面的html,并为每个链接显示正确的文本?

    假设您正在存储导航的顺序,您可以将它们放入一个数组中,然后在数组中循环,以正确的顺序显示菜单项

    请参见下面我所写的示例:

    $nav_order = array("home" => '2',
                       "preferences" => '1',
                       "mailbox" => '4',
                       "game_updates" => '5',
                       "message_boards" => '3');
    
    // Sort the menu items in to the right order
    $sorted_order = sort($nav_order, SORT_NUMERIC);
    
    // Start the list
    echo '<ul id="navMenu">';
    
    // Go through each item in the array, and show the menu item
    foreach ($sorted_order AS $menu_key => $menu_order)
    {
        switch($menu_key)
        {
            case "home":
                  echo '<li id="navMenu_1"><a href="http://www.example.com/home">Your Home</a></li>';
                  break;
            case "preferences":
                  echo '<li id="navMenu_2"><a href="#">Preferences</a></li>';
                  break;
            case "mailbox":
                  echo '<li id="navMenu_3"><a href="#">Mailbox</a></li>';
                  break;
            case "game_updates":
                  echo '<li id="navMenu_4"><a href="#">Game updates</a></li>';
                  break;
            case "message_boards":
                  echo '<li id="navMenu_5"><a href="#">Message Boards</a></li>';
                  break;
        }
    }
    
    // End the list
    echo '</ul>';
    
    $nav_order=array(“home”=>“2”,
    “首选项”=>“1”,
    “邮箱”=>“4”,
    “游戏更新”=>“5”,
    “留言板”=>“3”);
    //将菜单项按正确顺序排序
    $sorted\u order=排序($nav\u order,sort\u NUMERIC);
    //开始列表
    echo'
      ; //浏览数组中的每个项目,并显示菜单项 foreach($menu\u顺序为$menu\u键=>$menu\u顺序) { 开关($menu\U键) { 案例“家”: echo'
    • ; 打破 案例“偏好”: echo'
    • ; 打破 案例“邮箱”: echo'
    • ; 打破 案例“游戏更新”: echo'
    • ; 打破 案例“留言板”: echo'
    • ; 打破 } } //结束名单 回声“
    ”;
    谢谢您,我现在将尝试实现这一点,我自己到达了我的位置,但被卡在了这里,您能解释一下为什么您使用开关和机箱而不是常规的if-else吗?我会让你知道我的进展!没问题。之所以使用开关箱,是因为使用开关箱似乎是完全合乎逻辑的。如果你觉得if-else可以帮助你更好地理解它,你可以用if-else来实现它——尽管我读过switch-cases更快。是的,我以前从未使用过switch语句,但现在我理解了,使用它似乎是完全合乎逻辑的,谢谢Luke,这就成功了。
    $nav_order = array("home" => '2',
                       "preferences" => '1',
                       "mailbox" => '4',
                       "game_updates" => '5',
                       "message_boards" => '3');
    
    // Sort the menu items in to the right order
    $sorted_order = sort($nav_order, SORT_NUMERIC);
    
    // Start the list
    echo '<ul id="navMenu">';
    
    // Go through each item in the array, and show the menu item
    foreach ($sorted_order AS $menu_key => $menu_order)
    {
        switch($menu_key)
        {
            case "home":
                  echo '<li id="navMenu_1"><a href="http://www.example.com/home">Your Home</a></li>';
                  break;
            case "preferences":
                  echo '<li id="navMenu_2"><a href="#">Preferences</a></li>';
                  break;
            case "mailbox":
                  echo '<li id="navMenu_3"><a href="#">Mailbox</a></li>';
                  break;
            case "game_updates":
                  echo '<li id="navMenu_4"><a href="#">Game updates</a></li>';
                  break;
            case "message_boards":
                  echo '<li id="navMenu_5"><a href="#">Message Boards</a></li>';
                  break;
        }
    }
    
    // End the list
    echo '</ul>';