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>';