탐색 항목을 다시 정렬하는 시스템이 있습니다.배열이 데이터를 보유하고 있지 않습니다.
새로운 순서를 배열에 저장 한 다음 for 루프를 사용하여 배열을 탐색하고 데이터베이스를 업데이트합니다.
<?php
$apageid = array();
$apagename = array();
$apageorder = array();
$q = "SELECT g.id, g.title, n.order FROM tbl_general g INNER JOIN tbl_navigation n ON n.pageid = g.id WHERE n.type = '$_SESSION[parent]' ORDER BY n.order";
$return = $database->query($q);
while($row=mysql_fetch_assoc($return)){
$apageid[] = $row['id'];
$apagename[] = $row['title'];
$apageorder[] = $row['order'];
}
$count = count($apageid);
$bpageid = array();
$bpageorder = array();
?>
<div class="form-holder">
<?php
//run through each page one at a time and update the order of the menu
mysql_data_seek($return, 0); //reset the pointer to do the same query
$i = 0; //the count for saving the new configuration
while($row=mysql_fetch_assoc($return)){
$id = $row['id'];
$title = $row['title'];
$order = $row['order'];
?>
<div class="form-row">
<div class="form-label">
Page Name
</div>
<div class="form-field">
<select class="select-small" name="<?php echo $bpageid[$i]; ?>">
<?php
for($j=0; $j<$count; $j++){
if($apageid[$j] == $id) {
$selected = true;
} else {
$selected = false;
}
?>
<option value="<?php echo $apageid[$j]; ?>" <? echo ($selected == true) ? 'selected="selected"' : ''; ?>><?php echo $apagename[$j]; ?></option>
<?php
}
?>
</select>
<select class="select-small" name="<?php echo $bpageorder[$i]; ?>">
<?php
for($k=0; $k<$count; $k++){
if($apageorder[$k] == $order) {
$selected = true;
} else {
$selected = false;
}
?>
<option value="<?php echo $apageorder[$k]; ?>" <? echo ($selected == true) ? 'selected="selected"' : ''; ?>><?php echo $apageorder[$k]; ?></option>
<?php
}
?>
</select>
</div>
</div>
<?php
$i++;
}
?>
첫 번째 청크는 항목을 재정렬 할 수있는 메뉴입니다.
처음에는 현재 선택을로드하고 사용자가 순서를 변경할 수 있습니다.
function reorderChildren($pageid, $pageorder){
global $database;
$count = count($pageid);
//run through each page one at a time and update the order of the menu
for($i=0; $i<$count; $i++){
//set a few variables
$pid = $pageid[$i];
$porder = $pageorder[$i];
echo "pid = $pid porder = $porder";
$q = "UPDATE tbl_navigation SET order = '$porder' WHERE pageid = '$pid' AND type = '$_SESSION[parent]'";
$database->query($q);
}
return 0;
}
정보가 여기에 전달되고 정보가 for 루프 인 것으로 나타납니다.
누구나 볼 수 있습니까?
사용 된 이름이 아니므로 확인했습니다.
배열에 정보를 올바르게 저장하고 있습니까?
정보를 전달하는 배열 인 $bpageid
및 $bpageorder
이라는 정보를 명확하게 표시 할 수 있습니까?
감사합니다.
나는 100 % 확실하지 않지만 [이것을 보길 원할지도 모른다] (http://bobby-tables.com/). – Bobby
보안 양식이며 관리자 만 액세스 할 수 있습니다. – sark9012