• 締切済み

長いURLをフォームに入力させる方法について

社内の図書注文フォームを作ろうと思っています。 amzonのurlは最長で2000字を超えるそうです。 図書名: 金額:以外は当該ページのURLを貼ってもらい送信してもらおうと思っています。 短縮URLに変換するというのも考えましたが個人が運営しているフリーソフトしかなく、突然サイトが閉鎖されたり、マルウェアの危険性もあるということなのでやめました。 注文フォーム用のウェブサイトも幅は1000pxしかとっておらず、 通常の<input type="URL"……>のフォームで高さ、幅を大きくすれば4行、5行にまたがるURLを貼り付け途切れないように確認できるものなのでしょうか? いっそ<textarea>を使いそこにURLを貼ってもらおうかなとも考えています。 そういうやり方というのは間違った使い方なのでしょうか? この場合、2000字程度の文字列を入力する場合、colsやrowsはどれくらいの値をすればいいのでしょうか? <textarea type="url" name="A" cols="B" rows="c" ></textarea> まだまだ初心者です。これ以外にも何かいい方法をご存じでしたら教えてください。 よろしくお願いします。 投稿画像

  • HTML
  • 回答数1
  • ありがとう数0

みんなの回答

  • asciiz
  • ベストアンサー率70% (6630/9393)
回答No.1

そのような心配はご無用です。 たとえ表示領域が100pxだったとしても、入力長をあえて制限しなければ、1000文字だろうが2000文字だろうが、普通の<input type="URL">に入力することができます。 ただしフォームデータは"POST"方式で受け取ってください。(<form action="(URL)" method="POST" …>) formデフォルトの"GET"方式では、データが途中で切れる恐れがあります。 ---- ところで、AmazonのURLはとても長くなることはありますが、それは商品カテゴリを選んだ文字列や、商品名そのもの、そしてユーザーが検索に使った文字列がそのままURLに含まれているためです。 商品を指定する部分だけ取り出せば、かなり短くすることができます。 一般商品の場合: https://www.amazon.co.jp/dp/(ASINコード) または https://www.amazon.co.jp/gp/product/(ASINコード) ※ASINコードは、Amazonが商品につけた独自の管理コード。(Amazon Standard Identification Number) 書籍の場合: https://www.amazon.co.jp/dp/(ISBNコード) このように短縮できます。 例えば適当に検索して、クリック表示したこちらの書籍。 >https://www.amazon.co.jp/%E8%84%B3%E3%81%AE%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%9C%80%E5%A4%A7%E3%81%BE%E3%81%A7%E5%BC%95%E3%81%8D%E5%87%BA%E3%81%99-%E7%A5%9E%E3%83%BB%E6%99%82%E9%96%93%E8%A1%93-%E6%A8%BA%E6%B2%A2-%E7%B4%AB%E8%8B%91/dp/4479795820/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E6%99%82%E9%96%93%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9&qid=1567223714&s=books&sr=1-2 URLエンコードされている部分を日本語に直すと、 >https://www.amazon.co.jp/脳のパフォーマンスを最大まで引き出す-神・時間術-樺沢-紫苑/dp/4479795820/ref=sr_1_2?__mk_ja_JP=カタカナ&keywords=時間の使い方&qid=1567223714&s=books&sr=1-2 このように書かれています。 そしてこの中で商品を特定するのに必要なのは、/dp/ とそれに続くISBNコード部分 >https://www.amazon.co.jp/dp/4479795820 たったこれだけで、その書籍を表示することができます。 しかしまあ、ユーザーにこの作業をしろというのは酷なので、やはり入力フォームとしては長いURLをそのままコピペしてもらい、システムの方ではISBNコードだけ取り出して処理する、というようにするのが良いでしょう。 URLとして何か貼り付けられたな、と言うことが分かればいいので、URL全体を表示できる必要性は無いと思います。 (貼り付けられたURLがAmazonのものであるか確認、そしてそこからISBNコードを取り出すのはシステムの仕事。)

関連するQ&A

  • フォームの入力途中でのプレビューについて

    フォームの入力途中でのプレビューについて質問させてください。 以下のようなフォームがあります。 <form action="sample.php" method="post"> <textarea rows="2" cols="50" name="aaa"></textarea> <input type="submit" value="プレビューする"> <textarea rows="2" cols="50" name="bbb"></textarea> <input type="submit" value="送る"> </form> このフォームの途中の「プレビューする」を押すとそれ以前の入力項目の内容である"aaa"をsample.phpではなく別のphpに送ってプレビューしたいと思っています。 最後の"送る"ボタンを押すとすべての内容がsample.phpに送られます。 このようにフォームの途中でformのaction属性に指定したところとは別のphpに値を送ってプレビューするようなことは可能でしょうか? 解決方法を御存知の方がいらっしゃいましたらよろしくお願いします。 また、他の方法によってフォームの記入内容の途中までをプレビューする”ことが実現可能であるようであればその方法も教えていただけると幸いです。よろしくお願いいたします。

    • 締切済み
    • PHP
  • 入力フォームの送受信方法

    入力フォームを作成しましたが、何度設定しても送受信できません。 フォームに記入漏れがある場合、記入漏れがありますと表示しフォームに戻り、 送信後、送信完了ページを表示したいのですが、どこが違いますか? BiNDを使用しているためCGI記入欄はありません。htmlソースのみです。 <form method="post" action="info@00000.com" target="_thanks.html"> <p>お名前:    <input type="text" name="name"></p> <p>メールアドレス:<input type="text" name="email"></p> <p>コメント</p> <textarea name="example" cols="50" rows="10"></textarea> <p><input type="submit" value="送信する"></p> </form> サーバーはCHI、PHP対応です。

  • 入力フォームのスペースを増やしたい

    KENT WEBのpostmailをお借りして http://www.kent-web.com/data/postmail/index.html サンプルでは <textarea name="メッセージ" rows=6 cols=50 wrap=soft> となっていますが、もう少し書き込めるようにしたいと思い <textarea name="メッセージ" rows=15 cols=50 wrap=soft> に数値を変えたのですが、テスト送信してみると メッセージの入力内容が大きすぎますとエラーが出ます。 それに気が付いてみたら、せいぜい全角で30文字位しか 入力できません。最初の数値でも全角では150文字ぐらいは 入力できるものと理解していましたが、違うのでしょうか。 CGIのほうでは、 # 入力フィールドあたりの最大容量(バイト) # *参考 : 全角1文字 = 2バイト $max_field = 100; となっており、こちらの数値を変えれば良いのでしょうか。 できれば300~400字位まで入力させたいと考えています。

    • ベストアンサー
    • CGI
  • HPでメールフォームを作るとき

    <TEXTAREA name="メッセージ" rows="6" cols="35">メッセージをいれてください</TEXTAREA></td> と、メールフォームのメッセージを書くところを作るとき こういうのをいれるじゃないですか, しかし保存してみると</TEXTAREA>が<%%TEXTAREA>に なってしまうんです。<%%TEXTAREA>になると下に書いたやつがぜんぶメッセージのトコロにのってしまうんです。 どうやったらなおせるのか知ってたら教えてください! 文章も意味が分からなかったらすいません。 HP作成は2styleを使っています。

  • フォーム制作。

    アンケートをするためにフォームを作っているのですが、 CGI使えないサーバーはできませんよね? 今、自作のCGIは使えないけどフォームとカウンターなら 使えるとか言うのでそれをつかって一応作れているので、 僕は良いのですが、友達がそういうのしたいというので どうやったらフォーム作れるんですか? <INPUT SIZE="30" NAME="">とか <INPUT TYPE="RADIO" NAME="" VALUE="">とか <select name="">とか <TEXTAREA ROWS="4" COLS="40" NAME=""> ・・・とかは分かるんですけどそれだけじゃ送れませんよね。ちゃんと何所に送られるのかを設定しないと・・・。 <FORM ACTION~(?)とかいう初めに付ける奴がわかんないです・・・(^^;) なんか自分でもわかんないのでわけわからない文章に なってしまいました。m(-_-)m

    • 締切済み
    • CGI
  • ...データを一行ごと別々の変数

    <TEXTAREA rows="8" cols="20"></TEXTAREA> の内容をPOSTで送り、受け取ったデータを一行ごと別々の変数に入れたいのですが、 どうすればいいのでしょうか?

    • 締切済み
    • PHP
  • 複数のフォームを一括で送信することは可能ですか?

    CGIの勉強を始めたばかりの初心者です。 本に簡単なフォームメールがあったのですが、複数のフォームを一括でデータ送信する方法はあるのでしょうか? http://oshiete1.goo.ne.jp/qa3395953.htmlで教えて頂いた方法を真似て、以下のようにしてみたのですが、これだと1つのフォームしかデータ送信できないです。 CGIの方もいじらないと複数のフォームを一括送信はできないのでしょうか? <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); } //--></script> <form name="nform" method="POST" action="./5-2.cgi"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> </form> <form name="nform2" method="POST" action="./5-2.cgi"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> </form> <input type="button" value="送信" onClick="send()">

    • ベストアンサー
    • CGI
  • ボタンをクリックして文字を置換する

    <textarea name="areaA" rows="4" cols="40"></textarea><br> <input type="button" onclick="..."> <textarea name="areaB" rows="4" cols="40"></textarea><br> という風な2つのテキストエリアとボタンを使い、 テキストエリアに文字を書いてもらい、 ボタンを押すと任意の行を置換したいです。 たとえば ------------------ #あああああ いいいいい #ううううう えええええ ------------------ というものを、ボタンを押すと先頭に#がついた行だけ置換して ------------------ <部品1>あああああ<部品2> いいいいい <部品1>ううううう<部品2> えええええ ------------------ という風なscriptを組みたいのですが、正規表現等が苦手でまったくうまくいきません。 ご教授いただけないでしょうか?

  • 入力フォームについて

    FC2のホームページを利用しています 入力フォームのサンプルを手本にして、以下のように作成しましたが 「送信ボタン」をクリックしても、メールが届きません。 どうしてでしょうか? <form action="mailto:xxx@xxx.ne.jp" enctype="text/plain" method="post"> <p><label>NAME:<br /> <input type="text" name="名前" value="" tabindex="1" accesskey="b"> </label></p> <p><label>E-MAIL:<br /> <input type="text" name="メールアドレス" value="" tabindex="2" accesskey="a"> </label></p> <p><label>感想・ご意見<br> <textarea name="title" rows="15" cols="30" tabindex="9" accesskey="i"> </textarea> </label></p> <p> <input type="reset" value="送信" tabindex="10" accesskey="s"> <input type="reset" value="取消" tabindex="11" accesskey="r"> </p> </form>

  • 複数のフォームを一括で送信することは可能ですか?

    それらしきキーワードで検索しても出てこないので 頓珍漢な質問をしてるかもしれませんが、ご容赦ください。 送信ボタンは同一フォーム内のデータを送信できると思うのですが 複数のフォームを1つの送信ボタンで送信することは可能でしょうか? 例えば、下の2つのフォームを1つの送信ボタンでデータ送信することは可能でしょうか?2つのフォームを1つに合わせるというのは なしでお願いいたします。 <form name="nform" method="POST" action="mailto:webmaster@a.com?subject=問い合せ" enctype="text/plain"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> <p><input type="submit" value="送信する"></p> </form> <form name="nform2" method="POST" action="mailto:webmaster@leposystems.com?subject=問い合せ" enctype="text/plain"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> <p><input type="submit" value="送信する"></p> </form>

    • ベストアンサー
    • HTML

専門家に質問してみよう