PHPを使い、入力フォームから商品情報を入力してXMLに入れ、そのXMLの内容を別ページで修正し、修正ボタンを押すと「修正しました」というページに行くというものを以下のように作ったのですが、
入力ページ(nyuryoku.html)
<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <form method="post" action="kakunin.php" enctype="multipart/form-data"> <p>商品<input type="text" name="a" size="8"></p> <p>単価<input type="text" name="b" size="8"></p> <p>画像<input type="file" name="c" ></p> <p><input type="submit" value="登録"></p> </form> <form type="post" action="sakujyo.php"> <input type="submit" value="削除画面へ"> </form> <form type="post" action="syusei.php"> <input type="submit" value="修正画面へ"> </form> </body> </html> ```修正入力ページ(syusei.php) ```ここに言語を入力 <!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <h1>修正画面</h1> <form method='post' action='syusei-kakunin.php'> 商品名:<select name='all'> <?php $item=""; $xml=new SimpleXMLElement("shohin-list.xml",0,true); $item_all=$xml->item; $cnt=0; foreach($item_all as $dl){ print("<option value=$dl->name>$dl->name</option>"); $cnt++; } ?> </select> <p>単価:<input type="text" name="syusei"></p> <input type='hidden' name='no' value='$cnt'> <input type="submit" value="修正"> </form> </body> </html>
(この上記のページの内容は、XMLから読み込んだ内容を「商品名」に表示させ商品を選択して、単価の項目に修正の値を入力し「修正」ボタンを押し修正するというものです。)
「修正しました」のページ('syusei-kakunin.php')
<?php $syusei=$_POST["syusei"]; $no=$_POST["no"]; $items=Simplexml_load_file("shohin-list.xml"); $items->item[$no+""]->tanka=$syusei; echo $items->asXML('shohin-list.xml'); print("修正しました"); ?>
XML(shohin-list.xml)
<?xml version="1.0" encoding="UTF-8"?> -<shohin-list> -<item> <name>ブドウ</name> <tanka>500</tanka> <img>budou2.jpg</img> </item> -<item> <name>イチゴ</name> <tanka>300</tanka> <img>itigo2.jpg</img> </item> </shohin-list>
修正したい商品を選択して、値段を再入力して修正ボタンを押し「修正しました」というページに行くのですが、そのあとでXMLの内容を確認したら、リストの一番上の商品の単価が修正されていて選択した商品の単価が修正されていませんでした。
自分での調べてみたのですが原因がわかりません。
どの部分を修正すれば改善されるのでしょうか?
どうかよろしくお願いします。
回答3件
あなたの回答
tips
プレビュー