0
ページの並べ替えを目的としたコードを書きました。メニューシステムのページの並べ替え
<form action="process.php" method="post" />
<?php
$apageid = array();
$apagename = 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]'";
$return = $database->query($q);
while($row=mysql_fetch_assoc($return)){
$apageid[] = $row['id'];
$apagename[] = $row['title'];
$apageorder[] = $row['order'];
}
$count = count($pageid);
$bpageid = array();
$bpageorder = array();
//run through each page one at a time and update the order of the menu
for($i=0; $i++; $i<$count){
//set a few variables
$pid = $pageid[$i];
$porder = $pageorder[$i];
?>
<select name="<?php $bpageid[$i] ?>">
<?php
for($j=0; $j++; $j<$count){
?>
<option value="<?php $apageid[$j] ?>"><?php echo $apagename[$j]; ?></option>
<?php
}
?>
</select>
<select name="<?php $bpageorder[$i] ?>">
<?php
for($j=0; $j++; $j<$count){
?>
<option value="<?php $apageorder[$j] ?>"><?php echo $apageorder[$j]; ?></option>
<?php
}
?>
</select>
<?php
}
?>
<input type="submit" name="navigation" value="Reorder pages" />
</form>
例えば、7つのメニュー項目があった場合、コードべき全7及びディスプレイ7ドロップダウンボックス内の7つのオプションでそれぞれをループ。各ドロップダウンの隣には、ボックスの順番である1〜7の数字を入力します。これにより、各ドロップダウンでメニュー項目が選択され、そのメニュー項目に注文番号が割り当てられます。もちろん
、スクリプトが提出されたとき、私はコードは、現在送信ボタンが、何も表示されていない
2つの項目がなどなど衝突しないことを検証します。
誰でも問題を見ることができますか? $pageid
はまた
$count = count($pageid);
定義されることはありませんので
これはリミッターとインクリメントを組み合わせたもので、3つのループすべてで間違った方法です! – sark9012
forループは、特に入れ子になっていると厄介なことがあります。そのため、配列とイテレータを扱う際に常にforeachループを使用するようにしてください –