WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:フォームに対して、データ渡しをしたい

0:[投稿] たかゆう [2006/05/10 09:56 ] [環境:わからない わからない]

小さなショップをつくろうと思っています
1つの商品に1つずつ入力フォームをつくっていたのですが
商品が増えると対応できなくなるため
フォームを1つにして、選択された商品番号とその商品の写真情報を
フォーム画面に渡せないかと思っています。

どなたか、助けてください。


1:[回答] ふたばマーク [2006/05/11 22:35 ]

たかゆう さん
初めまして、ふたばマークともうします。
>フォームを1つにして、選択された商品番号とその商品の写真情報を
とのことですが、「フォームを1つにして」ということは、多くの商品があり、それぞれの商品がその、「1つのフォーム」をつかいまわすと、いう考え方と言い換えられると、理解しします。
そのフォームのスクリプトは、商品が変わっても共通する部分があり、商品が変われば、違った部分も当然あると理解下さい。
問題は、この違った部分にどのように対応するかが問題になります。例えば価格もサイズも全く同じだけども、形が違うなどの場合に、どのように対応するか???
一般的なカートシステムは、いわゆるCGIと呼ばれるかたちをとっていて、perlとかPHPなどの言語で、その違った部分に各々対応できる様になっています。
>1つの商品に1つずつ入力フォームをつくっていたのですが
例えば、<form ********><input ***><img="その1" ***></form>
<form ********><input ***><img="その2" ***></form>
などのように、2つ書く様にしていましたが、商品が1から10まであると <img="その1" の数字の部分だけ、"その2"に書き換えるようなプログラムをperlとかPHP言語にて書くようにすれば可能なわけです。
例えばperlの場合は、print "<img=\"$hinmei\"***>\n";のようにすると、$hinmeiの部分に、その1、その2、その3の様に代入されていくと、共通する部分は同じとして、変化する部分を$hinmeiとする事で、1つの商品を入力するフォームを作るのと同じ行数で、プログラムが完成することになります。
なにぶん、「ふたばマーク」ですので、ご質問の内容から判断して、ご理解を頂けるような、比喩的表現と言うべき解りやすい十分な説明ができませんが、まずは、カートシステム、CGI、perlまたはphpで検索をしてみると、色々情報が集まると思います。
頑張って下さい。上記のつたない説明がお役に立てれば幸いです。



2:[質問] たかゆう [2006/05/12 15:07 ]

ありがとうございます。
正確に理解して頂いてうれしいです。

これを、ハイパーリンクでデータを渡すことはできないでしょうか?


3:[回答] ふたばマーク [2006/05/12 22:18 ]

ごめんなさい。質問の意図を正確にとらえていませんでした。

>フォームに対して、データ渡しをしたい
つまり前述の$hinmei値を持ってリンクする方法について説明できていませんでした。
つまり、$hinmeiを使うCGIにデーターを渡す方法は、リンクの後にお供を付ける方法と、<form  get or pos にて送信する方法があります。
具体例では <a href="http://www.***.com/***.cgi?hinmei=abc
あるいは、<form name="hinmei" value="abc" の様にしてpost or getにて送信する方法が一般的では、ないかと思います。


4:[回答] ふたばマーク [2006/05/13 22:49 ]

訂正致します。
誤り
<form name="hinmei" value="abc" の様にしてpost or getにて送信する方法が一般的ではないかと
改め
<form method=post action="***/***/***.cgi">
<input type="****" name="hinmei" value="abc"> の様にしてpostまたはgetにて送信する方法が一般的ではないかと


5:[回答] たかゆう [2006/05/23 13:57 ]

大変大変ありがとうございます。
inputのnameに品名を入れて、cgiを使って動かしてみてみました。
おかげさまで、ちょっと、進歩しました。


6:[完了] たかゆう [2006/05/23 14:13 ]

ありがとうございました

回答(必須): 状態:

お名前(必須):

URL:




[戻る]