宜しくお願いします。
PHP5.0 MySQL Smartyにて簡単なフォームを開発しています。
テキストボックスにメールアドレスを入力してもらい、
テキストボックス内にまだカーソルが残ったままの状態で、
エンターを押すと、通常、postされるかと思います。
もちろん、type="submit"の保存ボタンも取り付けていますが、
それを利用(押さ)せずに、テキストボックス内にカーソルが残った状態でエンターを押して、postするようにしたいです。
しかし・・・。(下記がソースです)
<form id="form" action="aaa.php" method="post">
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
<input name="keep" type="submit" value="保存"/>
</form>
上記のような形でaaa.phpにpostさせています。
ですが、受け取り側となるaaa.php内にて、
if(isset($_POST["keep"])){
・・・・
}
としてpostの判定を行っているのですが、
すべて否定してまい、処理が進みません。
今回、フォームに関連するページをいくつも作成していまして、同じ要領でpostさせるページを作っていますが、
そこでは問題なく作動しています。
上記と同じソースでpostやif判定をしているのですが、
問題のあるフォームだけがpostされない情況です。
何か経験豊富な方でピンとくる問題点は無いでしょうか?
また、
色々な事を試してみました。
その中で、見つけたことは、
上記のソースにある、
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
を二度繰り返して
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
のようにすると、上手くpostされます。
なぜ、テキストボックスを二つ付けるとpostされるのでしょう???
意味不明でかなりはまっています。
ひょっとしたら、postさせるために、基本はこうですよ!
みたいな基本(ボンミス)が抜け落ちている可能性もありますので、
直感的なご意見も頂きたく思います。
ちなみに、Smartyのクラスを拡張して、独自クラスとしていますので、
value="{{$smarty.session.mail}}"
と{{ が二重になっております。
長くなりましたが、宜しくお願いします。
No.3
- 回答日時:
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
のようにすると、上手くpostされるような理解不能な結果になる場合、原因は意外なところにあるかもしれません。
それでも原因はクライアントに返されたHTMLソースに存在していることには間違いなさそうです。
idの値が重複していたり、タグの閉じ忘れはありませんか?
質問文のformはPOSTが成功するはずなので、そのHTMLソースから少しずつ追加して実際のHTMLソースになるまでテストしていけば原因が分かると思います。
この回答への補足
有難うございます。
そうなんです。
原因はHTML側にあると思います。
その為、かなりソースを分断して、切り分け切り分けして、
原因を絞りこみました。
そして出た結果が、
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" />
のテキストボックを2つ繰り返せばボスとされる
という不可解な現象に行き着きました。
でも、原因を切り分けたのは、
<form> ~ </form>
の間だけです。
<form>の中には、
テキストエリアだったり、
ラジオボタンだったり、
テキストボックス以外にも沢山 <form>内には存在します。
ですので、切り分けは厳重に繰り返しおこなったつもです。
でも、抜けているかもしれませんし、それに、HTML側に問題ありだとわかりましたので、
一つ進みました。
現状は、テキストボックスを2つ強引に作るために、
メールアドレスの入力と、そのアドレスの確認の為の入力で、テキストボックスを2つ連続して設置しました。
上手くいってます。
でも とても 気になりますよね・・・・。
もし、テキストボックス一つだけしか使用してはいけない仕様だった場合、これと同じ現象になったら、怖いですよね。
あー ストレス・・笑
No.4
- 回答日時:
すみません。
まだ勘違いしていました。やっと質問が理解できました。
それはIEのバグです。
一つだけしか使用してはいけない仕様だった場合はIEユーザのためにGCI製作側が対策をしなくてはいけませんね。
二つ付けるとpostされるというのも確認できました。とりあえず対策になっているみたいですね。
度々有難うございます。
なんと、バグでしたか・・・。
そういえば、この件で色々ネット内を調べていたときに、
テキストボックス関係で、IEがバグだのどうのと、
細かく記載された記事がありました。
飛ばし読みしてたので、自分のレーダーには引っかからずスルーしてました。
なるほど・・・。バグですか・・。
確か通常のpost以外の方法で受け渡ししないとダメ?見たいなことが
書いてあったような・・。javascriptを絡めてだっけ?
まあいいです。
とにかく出来ましたので よかったです!
有難うございました!
No.5ベストアンサー
- 回答日時:
僕もこの件で初めて知ったことで、出ていくパケットを見たりphpでなくてperlで受信する実験もしてみて、この仕様はおかしいからIEのバグでしょうと思ったわけです。
<form~>の次に<input style="display:none">を書くのもよいかもしれません。
知識が増えました。
有難うございました!
この回答への補足
いえいえこちらこそ有難うございます。
perlでもダメでしたか。
<form~>の次に<input style="display:none">を書く...
一度また試してみます。
有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP ボタンが押されたら処理を...
-
PHPでユーザー情報を入力して簡...
-
PHPでCookieを使った訪問回数に...
-
フォームへの前回入力値をクリ...
-
syntax error, unexpected '}' ...
-
<input type="hidden" >で配列...
-
POST GET HTTP 404 未検出
-
$_POSTを連想配列で取得したい!!
-
テキストボックスに初期値を入れる
-
$_SESSIONについて教えて下さい。
-
検索時の選択内容を保持する方法
-
PHP
-
チェックボックスによる検索(...
-
入力フォーム→確認画面→送信画...
-
チェックボックスのvalueを連結...
-
PHPのsubmitボタンが複数ある場合
-
CAKEPHPでビューからコントロー...
-
フォームでのリセットを使う方法
-
エンターでsubmitさせたい
-
smartyでチェックボックスをチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<input type="hidden" >で配列...
-
検索時の選択内容を保持する方法
-
HTMLで前の画面に戻る時、入力...
-
DBの値をチェックボックスに反...
-
フォームへの前回入力値をクリ...
-
PHPでCookieを使った訪問回数に...
-
PHPで画像の渡しが上手く行きま...
-
PHP ボタンが押されたら処理を...
-
HTMLのリンクをクリックするこ...
-
syntax error, unexpected '}' ...
-
画面が更新されてもチェックボ...
-
チェックボックスのvalueを連結...
-
チェックボックスの必須項目指定
-
PHPでユーザー情報を入力して簡...
-
PHPの関数実行
-
POSTデータのNAME属性をVALUEに...
-
パラメーターを隠す
-
phpで分からないエラーが出てし...
-
PHPで、ボタンを押すと同じペー...
-
テキストボックスに初期値を入れる
おすすめ情報