重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初めて質問します。
タイトルがわかりにくくて申し訳ないです。

今、Yahoo!デベロッパーネットワークのAPIを使って
商品検索のプログラミングを勉強しています。
サンプル集
http://developer.yahoo.co.jp/sample/shopping/sam …
のものを少しずついじりながら動かしている状態で、
現在は上のサンプルコードからあまり変化はありません。(見た目もコードもです)

そこでなんですが、
検索して表示された商品1つを選び、「登録する」ボタンを押すと
選んだ商品の情報だけを表示させ確認するようなページを作りたいのです。(タイトル、値段、商品説明など)
「ItemSearchForm.php」から「確認するページ.php」にページ遷移するときには
どのような受け渡し方をすればよいのでしょうか?

言葉足らずでわかりづらい点がありましたら、何でもおっしゃってください。
回答お願いいたします。

A 回答 (2件)

print_rの部分を、


echo $data['ResultSet'][0]['Result']['ItemCode'][0]['Code'];
のようにすれば取り出せます。

print_rで表示された文字は、その与えられた配列の構造の情報です。
表示された内容をよく読んで見てください。

また、print_rで自分で作成した配列を引数に与えてやったりしてどういう値が返ってくるかなどを見てみると理解が深まるかと思います。
    • good
    • 0
この回答へのお礼

このたびは初心者の私にわかりやすく、かつ的確に回答して頂き、
本当にありがとうございました!
1人では途中でやめてしまっていたかもしれません(´・ω・`)

またPHPのジャンルの中で私の質問があるかもしれませんが
お答え頂けるようでしたらぜひお願いします。
hogehoge78様には感謝の言葉でいっぱいです。

お礼日時:2009/12/21 21:52

「登録する」ボタンというのはどういう意味でしょうか。


とりあえずYahooAPIのID取得して試してみました。

ドキュメントにも記載されているとおり、「Code」というのが、商品コードになりますので、
例えば、ItemSearchForm.phpの61行目のしたあたりに、
<p><a href="confirm.php?code=<?php echo h($hit->Code)?>">登録する</a></p>
といったようなものを挿入し、confirm.phpを同じディレクトリに作ります。
内容は、
<?php
require_once '../common/common.php';
$code = null;

if(isset($_GET['code'])) $code = $_GET['code'];

$request = "http://shopping.yahooapis.jp/ShoppingWebService/ …

$serialdata = file_get_contents($request);

$data = array();
if(!empty($serialdata)){
$data = unserialize($serialdata);
}

echo "<pre>";
print_r($data);
echo "</pre>";

?>

こんな感じ。
つまり、確認ページに、受け渡す値は、「Code(商品コード)」の中身で、
受け取った商品コードは、
http://developer.yahoo.co.jp/webapi/shopping/sho …
に記載の通り、商品コード検索をします。
今回面倒だったので、PHPのシリアライズされた配列データ形式で取得して、ソレをunserializeしたものを、print_rで吐き出すだけにしときました。

いかがでしょう。

この回答への補足

遅くなり申し訳ないです。
回答ありがとうございます。
表示されているのを確認しました。

PHPの勉強を始めてあまり月日が経っていないため、
serializeというものをはじめて知りました。
またひとつ勉強になりました、ありがとうございます。

もしよろしければなのですが
教えていただいたコードから、更に一部だけを取り出す方法をお教え頂けないでしょうか?
(取り出したい部分が商品コードだったら、商品コードだけを表示させるという意味です)
ご面倒おかけして申し訳ありません。

補足日時:2009/12/20 01:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!