• 締切済み

Onchnage後の動作について

こんにちわ。 テキストボックスに格納された値をPOSTし、 画面再描画時にPOSTした値で抽出した戻り値をテキストボックスに表示させるロジックを作成しています。 以下のようにonChangeイベントで値をPOSTしているのですが、 画面更新後、スクロール位置が一番上になってしまい、そのたびに再度入力した場所までスクロール位置を戻しています。 echo "<input size=\"28\" onChange = submit() type=\"text\" name=code どうにか、画面更新を行わずにテキスト入力文字を元に値を抽出する方法はあるのでしょうか。 JavaScriptを使用すれば。という話もあるのですが、当方Javaの知識はないため、こちらで質問させていただきました。 Java、PHPどんな方法でもかまいませんので、入力文字を画面の遷移なし、もしくは遷移後に入力位置までカーソルを戻して検索結果を出力できる方法を教えてください。 乱文で申し訳ありませんが、よろしくお願いいたします。 以下ソース部 <TD> <?php echo _MI_CODE?>:</TD> <TD class="even"> <?php echo "<input size=\"28\" onChange = submit() type=\"text\" name=\"code\" value=\""; if(isset($_POST['code'])){ echo $code; $id = $_POST['code']; $sql="SELECT * FROM T_USER WHERE code = '$id'"; $rs = mysql_query($sql); $row = mysql_fetchArray($rs); } echo "\">"?> </TD> <TD></TD> <tr> <td> <?php echo _MI_COMPANY?>:</td> <td> <?php echo "<input size=\"76\" type=\"text\" name=\"company\" value=\""; if(empty($_POST['code'])){ }else{ if(empty($row['company'])) { echo "-"; }else{ echo $row['company']; } } echo "\">"?> </td>

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

画面を変更しないでデータを更新するならajaxがよいのでは? 単にPOSTするならid="hoge"でアンカーを打っておいて アクションにハッシュ(#hoge)を指定して飛ばす手もあります

drinkers
質問者

補足

回答ありがとうございます。 ajaxについては検討してみたのですが、少し大がかりになり過ぎる用だったので保留にしています。 Ajaxしか方法はないものでしょうか。。 FormタグにはいくつもInput要素があります。 その中で指定したアクションであればアンカーに飛ばす。といったことは可能でしょうか。 Form中の1つのInputBoxのOnchangeのみアンカーへ飛ばしたいと考えています。 すみませんがよろしくお願いいたします。

関連するQ&A