フォーム内でループ表示したリンク項目をクリックすると、各リンク項目が持つidと同じidを持つ別ページのリンク先へジャンプするHTMLを作成しています。
リンク項目はそれぞれ1月〜12月のidを持っていて、例えば9月(id=09)のリンクをクリックすると、別ページの同じid=09を持つリンク先へ飛ぶようにしたいです。
下記の場合、全てのリンクが別ページのid=09のリンク先へ飛ぶ状態です。<form action="abc.php?....の後に、その都度選択されるリンクのidを指定する方法を教えて頂けると助かります!よろしくお願いします。<(_""_)>
<form action="abc.php?09" name="link" method="post">
<?php
$ct=0;
while($data = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$data["month"]."</td>";
echo "<td>
<a href='javascript:document.form.submit();'></a>
<input type='submit' name='".$data["month"]."' value='".$data["name"]."'>
</td>";
echo "<tr>";
$ct++;
}
?>
</form>
javascript を使います。
こんな感じでしょうか。
<script>
function jump(btn) {
var f = btn.form;
f.action = "abc.php#" + btn.name; // ここで、リンク先を設定
f.submit();
}
</script>
<form action="abc.php?09" name="link" method="post">
<?php
$ct=0;
while($data = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$data["month"]."</td>";
echo "<td>
<a href='javascript:document.form.submit();'></a>
<input type='submit' name='".$data["month"]."' value='".$data["name"]." onclick='jump(this)'>
</td>";
echo "<tr>";
$ct++;
}
?>
</form>
不要な A タグがあったりしますが、極力、質問のコード そのままにしました。
- <script> を追加して、javascript の関数をひとつ定義します。
- <input type="submit"> のボタンに onclick の関数を追加します(回答では、見切れてます)。
関数名は、何でも構わないですが、仮に jump() としました。 - そのまま、残してありますが、form の action 属性は、削除してかまいません。
関数 jump() で設定しているので。