<FORM>
<INPUT TYPE=text name=id>
<INPUT TYPE=submit value=修正>
<INPUT TYPE=submit value=削除>
</FORM>
以上のようなレイアウトになっています。
idフィールドには、各々のidを入力してもらいます。
これをidの情報を保持したまま、修正ボタンと削除ボタンでformの
action先を違うファイルにしたいのですが、できるのでしょうか。

A 回答 (5件)

Javascriptを使いたくないのなら、



<form action="check.php3">...

で、check.php3内で、
渡された変数によって
HTMLを丸ごとinclude()してやるという手もあると思います。

if(isset($edit))
include("edit.inc");
if(isset($delete))
include("delete.inc");

みたいに。
    • good
    • 0

JavaScriptを使ってよいなら、Formは1つでOKですよ。


(この手の問題の常套手段です。)

# <head>内
<script language="JavaScript">
<!--
function edt()
{
  document.form1.action="./edit.php3";
  document.form1.submit();
}
function del()
{
  document.form1.action="./delete.php3";
  document.form1.submit();
}
-->
</script>

# <body>内
<form name="form1" action="" method="post">
<input type="text" name="id">
<input type="button" value="EDIT" onClick="edt()">
<input type="button" value="DELETE" onClick="del()">
</form>

どうですか?
    • good
    • 0

修正ボタンと削除ボタンを別のFormにして、JavaScriptと組み合わせれば可能だと思いますが。


たとえばこんな感じで。

-- ここから
<form name="edit" action="edit.php3">
<input type=text name=id>
<input type=submit value="修正">
</form>

<form onSubmit="delete_form();" name="delete" action="delete.php3">
<input type=hidden name=id value="">
<input type=submit value="削除">
</form>

<script language="JavaScript">
<!--
function delete_form() {
document.delete.id = document.edit.id;
}
// -->
</script>
-- ここまで

#動作確認はしてないので保証はしません(笑)
    • good
    • 0

まず、呼び出し元のhtmlファイルの中で


---
<form action="check.php3">
---
とやっておいて、とんだ先のcheck.php3の先頭で
---
if(isset($edit))
Header("edit.php3");
if(isset($delete))
Header("delete.php3");
---
でリダイレクトすれば簡単では?

または、
---
<form action="edit.php3">
<INPUT TYPE=text name=id>
<INPUT TYPE=submit value="修正">
</form>
<form action="delete.php3">
<INPUT TYPE=text name=id>
<INPUT TYPE=submit value="削除">
</form>
---
という方法もありますが、、、


別にボタンでなく「絵」をリンクさせてもいい様な
気がしますが、、、
    • good
    • 0
この回答へのお礼

ありがとうございます。phpまで分かってらっしゃったとはラッキーでした。
先ほど少し調べましたところ、今回のケースはrequireを使って対処できそうなことが分かり、進めてみております。
ご回答の前者の方法ですが、
Headerでリダイレクトも考えたのですが、なぜか「ヘッダにはもう挿入できません」みたいなエラーがなくなりませんでした。
もちろんHeaderの前に何の出力もしていないはずなんですが。
後者はユーザがidを2回書かないといけないので、今回の場合は使えません。

お礼日時:2001/05/02 19:24

<INPUT TYPE=submit value="修正" name="EDIT">


<INPUT TYPE=submit value="削除" name="DELETE">
のようにnameオプションを付けて判断すれば
良いのでは、、、

この回答への補足

回答ありがとうございます。
<FORM ACTION=edit.php3>
<INPUT TYPE=text NAME=id>
<INPUT TYPE=submit NAME=EDIT>
<INPUT TYPE=submit NAME=DELETE>
</FORM>
としても、飛び先はedit.php3になりますよね。
edit.php3内ではNAME属性で判断できますが、今回私はボタンに応じて
edit.php3とdelete.php3に飛び先を変えたいのです。
これはNAME属性をつけることでは解決はできないと考えています。
何かあれば、補足お願いします。

補足日時:2001/05/02 18:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q
の中に さらに
があるときのSUBMITボタンについて

今、

<FORM ACTION="aaa.asp" METHOD="POST" Name="form1">
<input type="SUBMIT" value="ボタン1">

<FORM ACTION="bbb.asp" METHOD="POST" Name="form2">
<input type="SUBMIT" value="ボタン2">
</FORM>

</FORM>


としていて、ボタン2を押すとbbb.aspに
飛んでほしいのでに、aaa.aspに飛んでしまいます。
こういう場合どのようにすればよいのでしょうか?

それぞれのボタンは hidden の値をそれぞれの
フォームの中の値を渡したいので
どうしてもSubmitがいいのです。

Aベストアンサー

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAMPLE</title>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 英和辞書
function func1(form){
document.form1.MT.value =form.TXT.value;
document.form1.submit();
}
//*** サーチ
function func2(form){
document.form2.MT.value = form.TXT.value;
document.form2.submit();
}
//-->
</script>
</head>

<body>
<!---実際に画面表示されるフォーム--->
<form>
<input type="text" name="TXT" value="Congratulation" size="40"><br>
<input type="button" onClick="func1(this.form)" value="Eng-JP">
<input type="button" onClick="func2(this.form)" value="goo">
</form>

<!-- 辞書用の仮想フォーム -->
<form name="form1" method="GET"
action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi">
<input type="hidden" name="MT">
<input type="hidden" name="sw" value="0">
</form>

<!--- サーチ用の仮想フォーム --->
<form name="form2" method="GET"
action="http://search.goo.ne.jp/web.jsp">
<input type="hidden" name="MT">
</form>

</body>
</html>

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAM...続きを読む

Q

が場所をとってしまい表示スペースに空白ができてしまい配置が乱れてしまいます
どうしたら'hidden'のサイズが0であるかのように振舞わせることができるでしょうか?
テーブルの中に使っているのでテーブル枠が不必要に広がってしまいました
折り返しが起こりtrの高さが増えてしまったのです

Aベストアンサー

タグの前後で改行している(<br>タグではなくソース上で)、ということはありませんか?
もしそうなら削除してみてください。

Qでテキストボックスとセルの間にわずかな隙間があいてしまう・・

<TABLE>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
</TALBLE>

こう書くときに、テキストボックスの下にわずかな隙間が
できるのを防ぎたいのですが、何か方法はありませんでしょうか?

Aベストアンサー

隙間をつくってしまう原因はいくつかあります。

(1) <TABLE>タグ
BORDER=0またはNOBORDERにする。
CELLSPACING=0
CELLPADDING=0

(2) <INPUT TYPE="TEXT">前後の改行
<TD><INPUT TYPE="TEXT"></TD>

(3)<FORM>や</FORM>タグの記述場所
恐らくこれが原因でしょう。
上記には記述されていませんが、
<TABLE>
<TR>
<TD>
<FORM ~>
</TD>
</TR>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
<TR>
<TD>
</FORM>
</TD>
</TR>
</TABLE>
としていませんか?
HTMLとしては好ましくないと思いますが、<FORM>や</FORM>の前後にある<TR><TD>~</TD></TR>を取り除き、以下の様にします。
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<FORM ~>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD><INPUT TYPE="TEXT"></TD>
</TR>
<!-- ここまで -->
</FORM>
</TABLE>

尚、表の罫線を残すのであればBORDERを変更したりしてください。

隙間をつくってしまう原因はいくつかあります。

(1) <TABLE>タグ
BORDER=0またはNOBORDERにする。
CELLSPACING=0
CELLPADDING=0

(2) <INPUT TYPE="TEXT">前後の改行
<TD><INPUT TYPE="TEXT"></TD>

(3)<FORM>や</FORM>タグの記述場所
恐らくこれが原因でしょう。
上記には記述されていませんが、
<TABLE>
<TR>
<TD>
<FORM ~>
</TD>
</TR>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
<TR>
<TD>
</FORM>
</TD>
</TR>...続きを読む

Q


<input type='submit' value='x' width='0'/>
で一時的に消そうとしたのですが消えません
消す方法はあるのでしょうか?

Aベストアンサー

とりあえず、<!-- -->でくくってコメントにするのはいかがでしょうか。

Q[html]タグの参照ボタンを画像ボタンにした時のsubmitの方法

なにから書けばいいのか難しいのですが…
とりあえず、先日次のような質問をしました。
【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273

その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました…

いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできないみたいなのです。実際そのフォームがsubmitに対して無反応になります。javascriptで強引にsubmitしようとすると"アクセスが拒否されました"のエラーがでます。

なんかごちゃごちゃになってきた…

今自分が実現したいのは、以下の2つです。
1.<input type="file">の参照ボタンを画像にしたい。
2.1を実現後そのformをsubmitしたい。

どなたか実現している方がいましたら、ご教授ください。
IE6で動けば問題ないです。

すみませんコードは文字制限に引っかかって載せれなかったです…

なにから書けばいいのか難しいのですが…
とりあえず、先日次のような質問をしました。
【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273

その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました…

いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできな...続きを読む

Aベストアンサー

試してみたところ、submitはキャンセルされてtype="file"の入力内容がクリアされますね。
(クリアされた状態でもう一度submitボタンをクリックすると送信できる。)

私的にはセキュリティ強化としても厳し過ぎる気もしますが・・・今の時点で何か方法が見つかっても今後セキュリティホールとして塞がれてしまう可能性もあるので、諦めたほうがいいのかもしれません。


人気Q&Aランキング

おすすめ情報