[PHP-users 5259] Re: 画像の並びを変えるには?

Koji KUSANAGI php-users@php.gr.jp
Wed, 06 Feb 2002 23:04:31 +0900


草薙です。
長文失礼致します。

--Original Message--
From: kaga
>並び順の値をどの様に変更すれば良いのでしょうか?
>すみませんがこれに対してアドバイスをお願いします。

PHP3を使ったことは無いので無駄なロジックが多く含まれているかも知れませんが、
サンプルを作ってみました。適当に作ったので不細工なソースですが、PHP4.0.6で動
作することは確認しています。
また、PHP3ということで、敢えてarray_splice等を使うことは避けています。
可能であればPHP4にバージョンアップされますと、同じ動作をもっと簡潔に実現する
ことが出来ると思います。

test.php

<?php
$img_num  = 5;
$img_name = array( "0.jpg",
                   "1.jpg",
                   "2.jpg",
                   "3.jpg",
                   "4.jpg"
            );

if ($HTTP_POST_VARS["img_sort"] != ""){
    $img_sort = $HTTP_POST_VARS["img_sort"];
}
if ($img_sort == ""){
    $img_sort = "0,1,2,3,4";
}

if ($HTTP_POST_VARS["target_num"] != ""){
    $target_num = intval($HTTP_POST_VARS["target_num"]);

    $img_sort_array = explode("," , $img_sort);
    if ($target_num != 0 ){
        $work = $img_sort_array[$target_num];
        for ($i=$target_num; $i>0; --$i) {
            $img_sort_array[$i] = $img_sort_array[$i-1];
        }
        $img_sort_array[0] = $work;
        $img_sort = implode(",", $img_sort_array);
    }
}
?>
<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function imgChange( num){
    var num;
    document.form1.target_num.value = num;
    document.form1.submit();
}
//-->
</script>
</head>
<body>
<?php
for ($i=0; $i<$img_num; ++$i){
    print "<div><a href=\"javascript:imgChange(";
    print $img_sort_array[$i].");\">";
    print "<img src=\"".$img_name[$img_sort_array[$i]]."\" border=\"0\">";
    print "</a></div>\n";
}
?>
<form name="form1" action="./test.php" method="post">
    <input type="hidden" name="target_num" value="">
    <input type="hidden" name="img_sort"value="<? print $img_sort; ?>">
</form>
</body>
</html>

----------------------------------------------------
草薙考司 <kusanagi@crumple.co.jp>