PHPについて質問です。

現在ショッピングカートで購入ボタンを押すと購入内容を確認できるページを作成しています。(SESSIONで処理しています。)
問題点があり、購入画面で購入個数を選んで、購入するボタンを押して確認ページへ移動するのですが、
確認ページの<select></select>文の処理がうまく出来ず、個数を1個以上選んで購入するボタンを押しても、すべての値が確認ページで初期設定の1になってしまいます。
<select>文で以下のように入力しているのですが、
<select name="kosuu" value="$_SESSION["kosuu"]"></select>
もしよろしければページを見ていただいて、解決策がありましたらご回答いただければと考えております。
http://www.aiomock2008.sakura.ne.jp/TEST/test2.php
また確認ページで個数を変えて、$_SESSIONに入ってある個数の値も変更したいのですが、わかるかたおりましたらそちらもご回答いただければと考えております。お手数おかけしますがよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/31 20:47:52
  • 終了:2010/04/01 23:43:43

ベストアンサー

id:code_tk No.1

code_tk回答回数77ベストアンサー獲得回数112010/03/31 22:40:16

ポイント100pt

あまり真剣にソースを呼んでいないのであれですが

selectボックスのほうはこんな感じでoptionにselectedをつければ選択されるようになります。

もっといいやり方があったような気がするんですが思いつかないのでとりあえずですが

<?php
$kosuu = $_POST["kosuu"];
echo $kosuu . '<br>';
//個数
echo '
<select name="kosuu">';
for($a = 0; $a < 10; $a++) 
{
	if ($a == $kosuu){
    	echo '<option selected> '.$a.'</option>';
    }
    else
    {
	echo '<option>'.$a.'</option>';
    }
}
echo '
</select>
';
?> 

個数変更のほうはこれでいいかは別にしてtest1.phpのほうの先頭に以下を書けばとりあえずsessionの内容は更新されるような気がしますが…

if(isset($_POST["submit"]))
{
	session_start();
	$kanri_no = $_POST["kanri_no"];
	$_SESSION["cart"]["$kanri_no"] = $_POST["kosuu"];
}
id:aiomock

ご回答ありがとうございます。

2010/04/01 22:18:31

その他の回答(1件)

id:code_tk No.1

code_tk回答回数77ベストアンサー獲得回数112010/03/31 22:40:16ここでベストアンサー

ポイント100pt

あまり真剣にソースを呼んでいないのであれですが

selectボックスのほうはこんな感じでoptionにselectedをつければ選択されるようになります。

もっといいやり方があったような気がするんですが思いつかないのでとりあえずですが

<?php
$kosuu = $_POST["kosuu"];
echo $kosuu . '<br>';
//個数
echo '
<select name="kosuu">';
for($a = 0; $a < 10; $a++) 
{
	if ($a == $kosuu){
    	echo '<option selected> '.$a.'</option>';
    }
    else
    {
	echo '<option>'.$a.'</option>';
    }
}
echo '
</select>
';
?> 

個数変更のほうはこれでいいかは別にしてtest1.phpのほうの先頭に以下を書けばとりあえずsessionの内容は更新されるような気がしますが…

if(isset($_POST["submit"]))
{
	session_start();
	$kanri_no = $_POST["kanri_no"];
	$_SESSION["cart"]["$kanri_no"] = $_POST["kosuu"];
}
id:aiomock

ご回答ありがとうございます。

2010/04/01 22:18:31
id:p332 No.2

p332回答回数36ベストアンサー獲得回数32010/03/31 22:56:37

ポイント35pt

optionタグの使い方が誤っています。

下記のように、valueを追加すれば良いと思います。

<option value=1>1</option>

<option value=2>2</option>

・・・

id:aiomock

ご回答ありがとうございます。

2010/04/01 22:18:37
  • id:aiomock
    購入ページ(購入画面)になります。


    <?php
    session_start();

    function order() {
    require "database_connect.php";

    echo '<table style="text-align: left; width: 500px;" border="1"
    cellpadding="2" cellspacing="2">
    <tbody>';

    $sql=mysql_query(" SELECT * from TEST WHERE PRODUCT='さくらんぼ' ; ");

    while ($row = mysql_fetch_array($sql, MYSQL_ASSOC)) {

    echo "<tr>\n";
    echo '<td style="vertical-align: center; text-align: center;">
    <FORM method="POST" action="kakunin.php">
    <input type="hidden" name="kanri_no" value="'.$row["PRODUCT_NAME"].'">'.$row["PRODUCT_NAME"].'<br>
    '.$row["PICTURE"].'<br><br>
    残り在庫数:'.$row["KOSUU"].'個<br>
    金額:<font color="red" size="+1">'.$row["PRICE"].'</font>円<br>
    購入数:<select name="kosuu">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option></select><br>
    <input type="submit" name="submit" value="購入する"></form>
    </td></tr>'."\n";
    }
    echo '</tbody></table>';
    }

    function cart() {
    // $_SESSION["cart"] = array();
    $_SESSION["cart"][] = array($_POST["kanri_no"], $_POST["kosuu"]);
    echo '<table><tbody>';
    foreach ($_SESSION["cart"] as $item) {
    list($kanri_no, $kosuu) = $item;
    echo '<tr><td>'.$kanri_no.'</td><td>'.$kosuu.'</td></tr>';
    }
    echo '</tbody></table>';
    }

    function cart2() {
    // $_SESSION["cart"] = array();
    $kanri_no = $_POST["kanri_no"];
    $_SESSION["cart"]["$kanri_no"] = $_POST["kosuu"];
    echo '<table><tbody>';
    foreach ($_SESSION["cart"] as $kanri_no=>$kosuu)
    echo '<tr><td>'.$kanri_no.'</td><td>'.$kosuu.'</td></tr>';
    echo '</tbody></table>';
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html;charset=SJIS" http-equiv="Content-Type">
    <title>test</title>
    </head>
    <body>
    <?php order() ?>
    <br>
    <br>
    </body>
    </html>
  • id:aiomock
    確認ページになります。

    <?



    if(isset($_POST["submit"]))
    {

    require "database_connect.php";

    session_start();



    $kanri_no = $_POST["kanri_no"];

    $_SESSION["cart"]["$kanri_no"] = $_POST["kosuu"];

    echo '<table border="1" bordercolor="black" cellspacing="0" cellpadding="3"><tbody>';
    echo '<tr><td bgcolor="yellow">写真</td><td bgcolor="yellow">タイトル</td><td bgcolor="yellow">値段</td>
    <td bgcolor="yellow">個数</td><td bgcolor="yellow">金額</td><td bgcolor="yellow">削除</td>';

    foreach ($_SESSION["cart"] as $kanri_no=>$kosuu){

    echo '<tr><td>';

    //写真
    require "database_connect.php";

    $sql=mysql_query("select * from TEST WHERE PRODUCT_NAME = '".$kanri_no."' ");

    while ($row = mysql_fetch_array($sql, MYSQL_ASSOC)) { echo $row["PICTURE"]; }

    //タイトル

    echo '</td><td>'.$kanri_no.'</td>';

    //値段

    echo '<td>';

    require "database_connect.php";

    $sql=mysql_query("select * from TEST WHERE PRODUCT_NAME = '".$kanri_no."' ");

    while ($row = mysql_fetch_array($sql, MYSQL_ASSOC)) { echo $row["PRICE"]; $price=$row["PRICE"]; }



    echo '</td>';

    //個数
    echo '<td><select name="kosuu" value="'.$kosuu.'">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option></select>
    </td>';

    //金額

    echo '<td>';

    echo $price*$kosuu;

    echo '</td>';

    //削除ボタン

    echo '<td><input type="submit" name="delete" value="削除する"></td>';

    echo '</tr>';}

    echo '</tbody></table><br><br><a href="http://www.aiomock2008.sakura.ne.jp/TEST/test2.php">引き続き商品を購入する</a>';

    }
    ?>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません