人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

リンクでsubmitに関しての質問です。

リンクでsubmitしても、hiddenのvalue要素が送れません。

echoなど一応確認していますが、送れてません

他にリンクでsubmitしているものもあるのですが
それは動きます。
ただ、条件が少し違ってvalue要素を送ってはいません
それと、データベースから呼び出してphpで表示しています。

このような要素が含まれるとやり方が違うんでしょうか?

↓動かないsubmit部分です

while ($row = mysqli_fetch_array($data)){
echo "<form name='list' method='POST'action='".$_SERVER['PHP_SELF']."'>";
echo "<input type='hidden' name='list_view' value='". $row['list_name'] ."'>";
echo "<a href='#' onClick='document.list.submit();'>". $row['list_name'] ."</a></form>";
echo "<hr> ";


間違っている所を指摘してくださるか
このような条件で動くサンプルを教えてください

よろしくお願いします。


●質問者: robopit
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
●100ポイント ベストアンサー

$rowの中身が複数あるとして、同じnameのformをいくつも並べているわけですよね。
リンクのsubmitがdocument.list.submit()なので始めのformだけのsubmitしかしていないのでは?


<?php
$row = mysqli_fetch_array($data);
foreach($row as $i => $e) {
 echo "<form name='list'" . $i . " method='POST'action='".$_SERVER['PHP_SELF']."'>";
 echo "<input type='hidden' name='list_view' value='". $e['list_name'] ."'>";
 echo "<a href='#' onClick='document.list" . $i . ".submit();'>". $e['list_name'] ."</a></form>";
 if (count($row) != $i+1) {
 echo "<hr> ";
 }
}

こんな感じでどうでしょうか。


robopitさんのコメント
なるほど、ということはフォーム名を変えるか thisを使ってやるかになるのでしょうか? この場合thisを使うとしたらどのような形がかんがえられますか?

Cherenkovさんのコメント
submitするボタンがinput要素だったらthisが使えると思いますが、a要素なので親のformは参照できないと思います。 どうしてもthisを使いたいなら、submitするの位置を、form要素直下(現在の位置)にして、 <a onclick="this.parentNode.submit()"とすればできると思います。

Cherenkovさんのコメント
submitするの位置を → submitするa要素の位置を

Cherenkovさんのコメント
フォーム名を変えたくない場合は質問文のdocument.list.submit()をthis.parentNode.submit()に変えるだけでいいかもしれませんね。

robopitさんのコメント
フォームを変える方法ですが、ちょとうまくいかなかったのですが this.parentNode.submit()で解決しました。 これは便利ですね。はじめて知りました。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ