カテゴリー
PHP

ページネイション、ページ入力

<?php

    if (isset($_GET['page'])) {
	$page = (int)$_GET['page'];
    } else {
	$page = 1;
    }
  } catch (PDOException $e) {
      echo 'Connection failed: ' . $e->getMessage();
  }

    // スタートのポジションを計算する
    if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * 10) - 10;
    } else {
	$start = 0;
    }
    //meiboテーブルから10件のデータを取得する
    $posts = $dbh->prepare("
        SELECT id, namae, jyusyo
        FROM meibo
        LIMIT {$start}, 10
    ");
    $posts->execute();

    echo "<table>\n";
    echo "\t<tr><th>id</th><th>namae</th><th>jyusyo</th></tr>\n";
    while( $result = $posts->fetch( PDO::FETCH_ASSOC ) ){
      echo "\t<tr>\n";
      echo "\t\t<td>{$result['id']}</td>\n";
      echo "\t\t<td>{$result['namae']}</td>\n";
      echo "\t\t<td>{$result['jyusyo']}</td>\n";
      echo "\t</tr>\n";
    }
    echo "</table>\n";

    // 接続を使用する
    $page_num = $dbh->prepare("
	SELECT  COUNT(*) id
	FROM posts
     ");
    $page_num->execute();
    $page_num = $page_num->fetchColumn();
    //ページネーションの数を取得する
    $pagination = ceil($page_num / 10);
?>


<?php
    for ($x=1; $x <= $pagination ; $x++) { ?>
	<a href="$_SERVER[PHP_SELF]?page=<?php echo $page+1 ?>"><?php echo $page + 1; ?></a>
<?php }
 
  print "$APPFOOTER";
 
?>
<p><a href="DBphpmenu.php">データベースメニューへ戻る</a></p>

</body>
</html>

何ページあるかをどうして知るか?という問題は残ります。

カテゴリー
PHP

ページの移り変わり

<?php
 
$totalPage = 10;
if (
  isset($_GET["page"]) &&
  $_GET["page"] > 0 &&
  $_GET["page"] <= $totalPage
) {
  $page = (int)$_GET["page"];
} else {
  $page = 1;
}
 
?>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
  <title>サンプル</title>
</head>
<body>
  <p>現在 <?php echo $page; ?> ページ目です。</p>
 
  <p>
    <?php if ($page > 1) : ?>
      <a href="?page=<?php echo ($page - 1); ?>">前のページへ</a>
    <?php endif; ?>
    <?php if ($page < $totalPage) : ?>
      <a href="?page=<?php echo ($page + 1); ?>">次のページへ</a>
    <?php endif; ?>
  </p>
 
</body>
</html>
カテゴリー
PHP

一行表示onelinedisp.php

<?php
require_once("photolibini.php");
session_start();
$tcnt = $_SESSION['tcnt'];
$PAGESIZE=1;
  $photoid = $_GET['photoid'];
  //print  $photoid;
  $where = " WHERE tblphoto.photoid = $photoid";
  //データベース接続
  $dsn = "mysql:host=".$DBSERVER.";dbname=".$DBNAME;
  $dbh = new PDO($dsn, $DBUSER, $DBPASSWORD);
  //1ページ分だけ抽出するSQL文を組立てる
  $sql = "SELECT tblphoto.*, categoryname
        FROM tblphoto
        RIGHT JOIN tblcategory 
             ON tblphoto.categoryid = tblcategory.categoryid" .
            $where ;
    
  $posts = $dbh->prepare($sql);
  $posts->execute();
  //ページ本文を組み立てます
    $body = "<BR>";
    $body .= "現在表示中のphotid:$photoid";
    $showtype = 1;
    if (!isset($showtype) or $showtype == 1) {
    //一覧表示の場合
    $body .= "<TABLE class='photolist'>
                <TR>
                  <TH>写真<SPAN class='smallfont'> (クリックで拡大)</SPAN></TH>
                  <TH>カテゴリ</TH>
                  <TH>コメント</TH>
                  <TH>登録日</TH>
                </TR>";
    //結果セットからデータをループで読み込みます
    while($col = $posts->fetch( PDO::FETCH_ASSOC )) {
      //各レコード内容を表示する表を組み立てます
      $body .= "<TR>
                  <TD width='130' align='center'>
                    <A href='$PHOTODIR$col[photofilename]' target='_blank'>
                      <IMG src='$PHOTODIR$col[photofilename]' width='120' height='90'></A>
                  </TD>
                  <TD width='130'>$col[categoryname]</TD>";
      //キーワードが指定されているときはコメント内のキーワードを太字に置換します
      $tmpcomment = $col['comment'];
      /*
      if ($searchtype == "kw") {
        for ($i = 0; $i < sizeof($arykey); $i++) {
          //$tmpcomment = preg_replace("/" . preg_quote($arykey[$i]) . "/", "", $tmpcomment);
        }
      }
      */
      //改行コードをBRタグに置換します
      $tmpcomment = nl2br($tmpcomment);
      $body .= "<TD width='410'>$tmpcomment</TD>
                <TD width='90' align='center'>$col[regdate]</TD>
                </TR>";
    }
    $body .= "</TABLE>";
  }
    //ページのナビゲーションを追加します
  $body .= "<DIV class='pagenavi'>";
    if ($photoid > 1) {
    //2ページ以降の場合は[前]を表示します
      $body .= "<A href =$_SERVER[PHP_SELF]?photoid=" . ($photoid - 1) . "&tcnt=$tcnt'>" .
              "&lt;前の $PAGESIZE 件</A>&nbsp;&nbsp;&nbsp;";
    }
    //if ($photoid = 1 and $tcnt > 1) {
    //  //2ページ以降の場合は[前]を表示します
    //  $body .= "<A href =$_SERVER[PHP_SELF]?photoid=" . ($photoid + 1) . "&tcnt=$tcnt'>" .
    //          "&lt;次の $PAGESIZE 件</A>&nbsp;&nbsp;&nbsp;";
    //}
    if (($photoid > 1 or $photoid == 1) and $photoid < $tcnt) {
        //全部で2ページ以上あってかつ現在が最終ページより
        //前のときは[次]を表示します
        $body .= "<A href =$_SERVER[PHP_SELF]?photoid=" . ($photoid + 1) . "&tcnt=$tcnt'>" .
              "次の $PAGESIZE 件&gt;</A>";
    }
    
  $body .= "</DIV>";

  //ページヘッダを出力します
  print htmlheader("検索結果");
  //ページ本文を出力します
  print $body;
  //ページフッタを出力します
  print htmlfooter();

 ?>

比較的簡単に出来ました。search.phpをそのままコピー出来ました。

カテゴリー
PHP

クリック選択のpagenation.php

<?php
session_start();
require_once("photolibini.php");
//1ページ当りの表示件数を設定します
  $PAGESIZE = 10;
//データベース接続
  $dsn = "mysql:host=".$DBSERVER.";dbname=".$DBNAME;
  $db = new PDO($dsn, $DBUSER, $DBPASSWORD);

// GETで現在のページ数を取得する(未入力の場合は1を挿入)
if (!isset($_GET['page'])) {
    //初めて呼ばれたときは、総件数を取得
	$sql = "SELECT Count(*) AS cnt FROM tblphoto";
	$posts = $db->prepare($sql);
	$posts->execute();
	$tcnt = $posts->fetchColumn();
	//件数を知る
	$totalpage = ceil($tcnt / $PAGESIZE);
	    if ($totalpage == 0) {
        $body = "該当する写真はみつかりませんでした!
              <INPUT type='button' value='ホームへ戻る'
              onclick='window.location=\"index.php\"'>";
        print htmlheader("検索結果") . $body . htmlfooter();
      exit();
      }
	$page = 1;
	
  //ページ上部の表示組立て
    $_SESSION['tcnt'] =$tcnt;
    $body = "$tcnt 件の写真が見つかりました。";
    $body .= "[" . ($PAGESIZE * ($page - 1) + 1) . "-";
    if($page < $totalpage) {
      //最終ページより前のページの時
      $body .=($PAGESIZE * $page) . "]を表示";
      } else{
      //最終ページの時
      $body .= "$tcnt]を表示";
	} 

  }else{
	$page =(int)$_GET['page'];
  //$tcnt =(int)$_GET['tcnt'];
  $tcnt =(int)$_SESSION['tcnt'];
	$totalpage = ceil($tcnt / $PAGESIZE);
    $body = "$tcnt 件の写真が見つかりました。";
    //表示したいphotoidをクリックして下さい。
    //<BR><BR>
    //<UL type='circle'>";
    $body .= "[" . ($PAGESIZE * ($page - 1) + 1) . "-";
    if($page < $totalpage) {
      //最終ページより前のページの時
      $body .=($PAGESIZE * $page) . "]を表示";
    } else{
      //最終ページの時
      $body .= "$tcnt]を表示";
	}

  }

// スタートのポジションを計算する
if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * $PAGESIZE) - $PAGESIZE;
} else {
	$start = 0;
}

// postsテーブルから10件のデータを取得する
$posts = $db->prepare("
	SELECT  categoryid, comment, photofilename,
	photoid, regdate
	FROM tblphoto
	LIMIT {$start}, $PAGESIZE
");
$posts->execute();
$body .= "<BR>表示したいphotoidをクリックして下さい。
      <BR>
      <UL type='circle'>";
//$body .= "<table>\n";
$body .= "\t<tr><th>photoid </th><th>photofilename </th><th>categoryid </th>
        <th>comment </th><th>regdate </th><tr>";
while($result = $posts->fetch(PDO::FETCH_ASSOC)){
    $body .= "<LI><A href='onelinedisp.php?photoid=$result[photoid]'";
    $body .= "\t<tr>\n";
	  $body .= "\t\t<td>{$result['photoid']}</td>\n";
	  $body .= "\t\t<td>{$result['photofilename']}</td>\n";
	  $body .= "\t\t<td>{$result['categoryid']}</td>\n";
	  $body .= "\t\t<td>{$result['comment']}</td>\n";
    $body .= "\t\t<td>{$result['regdate']}</td>\n";
    $body .= "\t<tr>\n";
}
//$body .= "</table>\n";
$body .= "</UL>";
// postsテーブルのデータ件数を取得する
$page_num = $db->prepare("
	SELECT COUNT(*) categoryid
	FROM tblphoto
");
$page_num->execute();
$page_num = $page_num->fetchColumn();

// ページネーションの数を取得する
$pagination = ceil($page_num / $PAGESIZE);

//  $pagination = $totalpage;
 //ページヘッダを出力します
  print htmlheader("PHPテスト");
  //ページ本文を出力します
  print $body;
  //ページフッタを出力します
  print htmlfooter();


?>

<?php for ($x=1; $x <= $pagination ; $x++) { ?>
  <a href="?page=<?php echo $x ?>&tcnt=$tcnt"><?php echo $x; ?></a>
<?php } // End of for

以前のものは、<TABLE>使って、表形式で表示してましたが、どうもクリック選択できないので、<TABLE>をしないように、コメントアウトしてます。それ以外は変わってないと思います。

カテゴリー
PHP

photolib弄ってます。

<?php
session_start();
require_once("photolibini.php");
//1ページ当りの表示件数を設定します
  $PAGESIZE = 10;
//データベース接続
  $dsn = "mysql:host=".$DBSERVER.";dbname=".$DBNAME;
  $db = new PDO($dsn, $DBUSER, $DBPASSWORD);

// GETで現在のページ数を取得する(未入力の場合は1を挿入)
if (!isset($_GET['page'])) {
    //初めて呼ばれたときは、総件数を取得
	$sql = "SELECT Count(*) AS cnt FROM tblphoto";
	$posts = $db->prepare($sql);
	$posts->execute();
	$tcnt = $posts->fetchColumn();
	//件数を知る
	$totalpage = ceil($tcnt / $PAGESIZE);
	    if ($totalpage == 0) {
        $body = "該当する写真はみつかりませんでした!
              <INPUT type='button' value='ホームへ戻る'
              onclick='window.location=\"index.php\"'>";
        print htmlheader("検索結果") . $body . htmlfooter();
      exit();
      }
	$page = 1;
	
  //ページ上部の表示組立て
    $_SESSION['tcnt'] =$tcnt;
    $body = "$tcnt 件の写真が見つかりました。";
    $body .= "[" . ($PAGESIZE * ($page - 1) + 1) . "-";
    if($page < $totalpage) {
      //最終ページより前のページの時
      $body .=($PAGESIZE * $page) . "]を表示";
      } else{
      //最終ページの時
      $body .= "$tcnt]を表示";
	} 

  }else{
	$page =(int)$_GET['page'];
  //$tcnt =(int)$_GET['tcnt'];
  $tcnt =(int)$_SESSION['tcnt'];
	$totalpage = ceil($tcnt / $PAGESIZE);
    $body = "$tcnt 件の写真が見つかりました。";
    $body .= "[" . ($PAGESIZE * ($page - 1) + 1) . "-";
    if($page < $totalpage) {
      //最終ページより前のページの時
      $body .=($PAGESIZE * $page) . "]を表示";
    } else{
      //最終ページの時
      $body .= "$tcnt]を表示";
	}

  }

// スタートのポジションを計算する
if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * $PAGESIZE) - $PAGESIZE;
} else {
	$start = 0;
}

// postsテーブルから10件のデータを取得する
$posts = $db->prepare("
	SELECT  categoryid, comment, photofilename,
	photoid, regdate
	FROM tblphoto
	LIMIT {$start}, $PAGESIZE
");
$posts->execute();
$body .= "<table>\n";
$body .= "\t<tr><th>photoid</th><th>photofilename</th><th>categoryid</th>
        <th>comment</th><th>regdate</th><tr>";
while($result = $posts->fetch(PDO::FETCH_ASSOC)){
    $body .= "\t<tr>\n";
	$body .= "\t\t<td>{$result['photoid']}</td>\n";
	$body .= "\t\t<td>{$result['photofilename']}</td>\n";
	$body .= "\t\t<td>{$result['categoryid']}</td>\n";
	$body .= "\t\t<td>{$result['comment']}</td>\n";
    $body .= "\t\t<td>{$result['regdate']}</td>\n";
    $body .= "\t<tr>\n";
}
$body .= "</table>\n";

// postsテーブルのデータ件数を取得する
$page_num = $db->prepare("
	SELECT COUNT(*) categoryid
	FROM tblphoto
");
$page_num->execute();
$page_num = $page_num->fetchColumn();

// ページネーションの数を取得する
$pagination = ceil($page_num / $PAGESIZE);

//  $pagination = $totalpage;
 //ページヘッダを出力します
  print htmlheader("PHPテスト");
  //ページ本文を出力します
  print $body;
  //ページフッタを出力します
  print htmlfooter();


?>

<?php for ($x=1; $x <= $pagination ; $x++) { ?>
  <a href="?page=<?php echo $x ?>&tcnt=$tcnt"><?php echo $x; ?></a>
<?php } // End of for

カテゴリー
PHP

pegenation.php

<?php
require_once("photolibini.php");

  
//データベース接続
  $dsn = "mysql:host=".$DBSERVER.";dbname=".$DBNAME;
  $db = new PDO($dsn, $DBUSER, $DBPASSWORD);

// GETで現在のページ数を取得する(未入力の場合は1を挿入)
if (isset($_GET['page'])) {
	$page = (int)$_GET['page'];
} else {
	$page = 1;
}

// スタートのポジションを計算する
if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * 10) - 10;
} else {
	$start = 0;
}

// postsテーブルから10件のデータを取得する
$posts = $db->prepare("
	SELECT  categoryid, comment, photofilename,
	photoid, regdate
	FROM tblphoto
	LIMIT {$start}, 10
");
$posts->execute();
$body = "<table>\n";
$body .= "\t<tr><th>photoid</th><th>photofilename</th><th>categoryid</th>
        <th>comment</th><th>regdate</th><tr>";
while($result = $posts->fetch(PDO::FETCH_ASSOC)){
    $body .= "\t<tr>\n";
	$body .= "\t\t<td>{$result['photoid']}</td>\n";
	$body .= "\t\t<td>{$result['photofilename']}</td>\n";
	$body .= "\t\t<td>{$result['categoryid']}</td>\n";
	$body .= "\t\t<td>{$result['comment']}</td>\n";
    $body .= "\t\t<td>{$result['regdate']}</td>\n";
    $body .= "\t<tr>\n";
}
$body .= "</table>\n";

// postsテーブルのデータ件数を取得する
$page_num = $db->prepare("
	SELECT COUNT(*) categoryid
	FROM tblphoto
");
$page_num->execute();
$page_num = $page_num->fetchColumn();

// ページネーションの数を取得する
$pagination = ceil($page_num / 10);

 //ページヘッダを出力します
  print htmlheader("PHPテスト");
  //ページ本文を出力します
  print $body;
  //ページフッタを出力します
  print htmlfooter();


?>

<?php for ($x=1; $x <= $pagination ; $x++) { ?>
	<a href="?page=<?php echo $x ?>"><?php echo $x; ?></a>
<?php } // End of for

上の図で、比較的に長いくないので、どうやれば表示部分を変えていけるでしょうかね。ページネイションの本質はこれで行くとして。

カテゴリー
PHP

PDO接続のデータベースのページイング

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<title></title>
<style>
<!--
    table,th,td{
        border: 1px solid #000;
    }
-->
</style>
</head>
<body background="y8b.gif">

<?php
  require_once ("newpage8.php");
//自身の環境に合わせて書き換える
//接続に必要な$hostname、$dbname、$username、$passwordはnewpage8.phpへ移動
//newpage8.phpはサイト転送出来ないので、転送ツールでアップする
 
  print $APPTITLE;
 
  MyTitlePrint("実験開始!データベースのテーブル表示テスト");
 
//------
  $dsn = "mysql:host=".$hostname.";dbname=".$dbname;
 
  try {
    $dbh = new PDO($dsn, $username, $password);
    // GETで現在のページ数を取得する(未入力の場合は1を挿入)

?>
    <form  method="GET" >
      <p> ページ: <input type="text" name="page" value=""><input type="submit" ></p>
    </form> 
<?php

    if (isset($_GET['page'])) {
	$page = (int)$_GET['page'];
    } else {
	$page = 1;
    }
  } catch (PDOException $e) {
      echo 'Connection failed: ' . $e->getMessage();
  }

    // スタートのポジションを計算する
    if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * 10) - 10;
    } else {
	$start = 0;
    }
    //meiboテーブルから10件のデータを取得する
    $posts = $dbh->prepare("
        SELECT id, namae, jyusyo
        FROM meibo
        LIMIT {$start}, 10
    ");
    $posts->execute();
    $posts = $posts->fetchAll(PDO::FETCH_ASSOC);

    foreach ($posts as $meibo) {
        echo $meibo['id'], ' : ';
        echo $meibo['namae'], ' : ';
        echo $meibo['jyusyo'], '<BR>';
    }
    // 接続を使用する
    $page_num = $dbh->prepare("
	SELECT  COUNT(*) id
	FROM posts
     ");
    $page_num->execute();
    $page_num = $page_num->fetchColumn();
    //ページネーションの数を取得する
    $pagination = ceil($page_num / 10);
?>



<?php
    for ($x=1; $x <= $pagination ; $x++) { ?>
	<a href="?page=<?php echo $x ?>"><?php echo $x; ?></a>
<?php }
 
  print "$APPFOOTER";
 
?>
<p><a href="DBphpmenu.php">データベースメニューへ戻る</a></p>

</body>
</html> 

 ネットで見つけたコードそのままです。自分が今挑戦していて、半分挫折ですが、mysqliを使ったものですので、違うのが残念です。ほぼ最後の部分で、出力があります。でもここの部分がどうやって実行できているんでしょうか?なんか?リスト全部出力するんではないんですか?urlに?page=2とか書くと、2ページ目を出力する。そういうもんなんでしょうか?

またまたネット情報ですが、<FORM></FORM>でキーボードから入力を足してみました。するとurlのpageと連動して動きました。後はクリックと連動できれば、かなりいいかも。

 「PHP5.0とMySQL5.0で構築する最速Webシステム」は古いせいもあるかもしれませんが、難しい。一度目は全データを読み込みます。件数を調べないといけないので。一ページの表示できる件数を決めれば、何ページ必要か分かります。何ページ目か指定していない一番最初は一ページ目を表示ます。次から出来ないところですが、実行しているphpファイル(自分自身)に対して、どうやら表示すべきpageと全体の件数を教えないといけないようなんです。

 上の例では、ネットそのまま出できましたが、「ネタ本」では未だできません。((+_+))

カテゴリー
PHP

PHPで岩手のアスリートやって見ました

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<title></title>
</head>
<body background="y8b.gif">

 <?php
  require_once ("newpage8.php");
  print $APPTITLE;

  MyTitlePrint("実験開始!配列の使い方");
     $membersList = [
      "members" => [
          [
            "name" => "阿部寿樹",
            "age" => 30,
            "address" => "岩手県一関市",
          ],
          [
            "name" => "岩淵麗楽",
            "age" => 18,
            "address" => "岩手県一関市",
          ],
          [
            "name" => "小林陵侑",
            "age" => 23,
            "address" => "岩手県八幡平市",
         
          ]
        ]
      ];

    for($i=0; $i<sizeof($membersList["members"]); $i++) {
      print $membersList["members"][$i]["name"] . ", ";
      print $membersList["members"][$i]["age"] . ", ";
      print $membersList["members"][$i]["address"] . "<BR>";
    }

   print "$APPFOOTER";

?>

<p><a href="newpage10.php">書き込みインデックスへ戻る</a></p>
</body>
</html>

 PHPのデバッグは今のところ、サーバーにやってもらってますが、エラーだとメッセージは出ますが、一行だけです。JavaScriptはエラーが起きても、100%無視ですし、自分はデバッガーを楽しむ人なので、どちらもつまらないというか?簡単に言えば、力が無いのですけどね。今だに9801で使ったTurbo デバッガーの感動が思い出されます。

カテゴリー
JavaScript PHP

プロパティの追加その2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<title>JavaScript練習中!</title>
</head>
<body background="y8b.gif">
    <?php
    require_once ("newpage8.php");
    print $APPTITLE;

    MyTitlePrint("連想配列その5(岩手のアスリートその2)、実験開始!");
    MyTitlePrint("連想配列のプロパティの追加");
    ?>
    <script>
        <!--
      //ここにJavaScriptを書くよー
       var membersList = {
      "members" : [
          {
            "name" : "阿部寿樹",
            "age" : 30,
            "address" : "岩手県一関市",
          },
          {
            "name" : "岩淵麗楽",
            "age" : 18,
            "address" : "岩手県一関市",
          },
          {
            "name" : "小林陵侑",
            "age" : 23,
            "address" : "岩手県八幡平市",
         
          }
        ]
      }
//プロパティの追加
      membersList['members'][0].nenpo = 3000;
      membersList['members'][1].syumi = ['snowbord','かまくらつくり'];
//第一の出力の仕方
      for (var k in membersList.members) {
        document.write(k + ", ");
        document.write(membersList['members'][k].name + ", ");
        document.write(membersList['members'][k].age + ", ");
        document.write(membersList['members'][k].address + "<BR>");
      }
//第二の出力の仕方
      document.write("================================" + "<BR>");
      for (var k in membersList.members ) {
        var propaty = Object.keys(membersList['members'][k]);
        for (var i=0; i < propaty.length; i++) {  
          document.write( propaty[i] + "=> ");
          document.write( membersList['members'][k][propaty[i]] + "<BR>");
        }
        document.write("================================" + "<BR>");
      } 

      //-->
    </script>

    <?php
        print "$APPFOOTER";
    ?>
<p><a href="JavaScriptMenu.php">JavaScriptMenuへ</a></p>
</body>
</html>

配列のプロパティを追加しました。出力は同じで何とかいけました。でも何でか?

カテゴリー
JavaScript PHP

連想配列、プロパティの追加

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<title>JavaScript練習中!</title>
</head>
<body background="y8b.gif">
    <?php
    require_once ("newpage8.php");
    print $APPTITLE;

    MyTitlePrint("連想配列その5(岩手のアスリートその2)、実験開始!");
    MyTitlePrint("連想配列のプロパティの追加");
    ?>
    <script>
        <!--
      //ここにJavaScriptを書くよー
       var membersList = {
      "members" : [
          {
            "name" : "阿部寿樹",
            "age" : 30,
            "address" : "岩手県一関市",
          },
          {
            "name" : "岩淵麗楽",
            "age" : 18,
            "address" : "岩手県一関市",
          },
          {
            "name" : "小林陵侑",
            "age" : 23,
            "address" : "岩手県八幡平市",
         
          }
        ]
      }
//プロパティの追加
      membersList['members'][0].nenpo = 3000;
//第一の出力の仕方
      for (var k in membersList.members) {
        document.write(k + ", ");
        document.write(membersList['members'][k].name + ", ");
        document.write(membersList['members'][k].age + ", ");
        document.write(membersList['members'][k].address + "<BR>");
      }
//第二の出力の仕方
      document.write("================================" + "<BR>");
      for (var k in membersList.members ) {
        var propaty = Object.keys(membersList['members'][k]);
        for (var i=0; i < propaty.length; i++) {
          document.write( propaty[i] + ", ");
          document.write( membersList['members'][k][propaty[i]] + "<BR>");
        }
        document.write("================================" + "<BR>");
      
      } 

      //-->
    </script>

    <?php
        print "$APPFOOTER";
    ?>
<p><a href="JavaScriptMenu.php">JavaScriptMenuへ</a></p>
</body>
</html>

意外に簡単に、プロパティの追加は出来るようです。第二の出力の仕方が、威力を発揮します。しかし、Script上だけですので、保存されてません。

inserted by FC2 system