電子書籍の厳選無料作品が豊富!

以下のようなフォームをつくっているのですが、どうもキャンセルを押すと登録されてしまいます。ごうしたらよいでしょうか?

<form id='next' name='next' method='post' action='XXX.php'>
<INPUT name='next' type='submit' id='next' value='登録する'>
<INPUT type='button' value=' 戻る ' onClick='history.back()'>
<INPUT name='cancel' type='submit' value='キャンセル' onClick='index.html'>

A 回答 (3件)

「PHP内で記述」がイマイチ理解できませんし、そうしているからformが正常に機能しないと言う理屈も良く理解できませんが、他の方法なら


<form id='next' name='next' method='post' action='XXX.php'>
<INPUT name='next' type='submit' id='next' value='登録する'>
<INPUT type='button' value=' 戻る ' onClick='history.back()'>
<a href='index.html'>キャンセル</a>
</form>

<form id='next' name='next' method='post' action='XXX.php'>
<INPUT name='next' type='submit' id='next' value='登録する'>
<INPUT type='button' value=' 戻る ' onClick='history.back()'>
<span onclick='window.location="index.html"'>キャンセル</span>
</form>
単純にキャンセルをクリックするとindex.htmlに飛びます。

PHPは良く解りませんが、サーバーサイドスクリプトって最終的にはユーザーエージェントにHTMLを渡しているんじゃないんですか?

この回答への補足

ご返答ありがとうございます。参考にさせていただきます。

>PHP内で記述
とは『 <?PHP ~ ?> 』内に記述するという意味です。PHPのスクリプト内に表記すると、言ったほうが正確なのかもしれません。わかりずらくて、すいませんでした。

>PHPは良く解りませんが、サーバーサイドスクリプトって最終的にはユーザーエージェントにHTMLを渡しているんじゃないんですか?

一応、そういうことになるわけですが、PHPのスクリプト内に記述することで、「"」が使えなくなったり、通常のHTML表記のままだと、何かと問題が発生し、通常通り動作しないことがあります。

補足日時:2006/12/25 23:12
    • good
    • 0

<form id='next' name='next' method='post' action='XXX.php' onreset='window.location="index.html"'>


<INPUT name='next' type='submit' id='next' value='登録する'>
<INPUT type='button' value=' 戻る ' onClick='history.back()'>
<INPUT name='cancel' type='reset' value='キャンセル'>
</form>
こうしたら良いと思います。
余分なことですがidやnameに同じ名前を使うと何かとトラブルの元ですよ。

この回答への補足

ご返答ありがとううございます。下記と同様の理由のためか、うまく動作しません…その他、方法あるでしょうか?

補足日時:2006/12/24 23:01
    • good
    • 0

まずサーバーにデータを送る必要がないならsubmitする


必要はないでしょう。submitをやめてbuttonで処理してください。
それとonClickでファイル名を書かれても普通に文法違反ですね。
location.hrefを書き換えてください。

<INPUT name='cancel' type='submit' value='キャンセル' onClick='index.html'>

<INPUT name='cancel' type='button' value='キャンセル' onClick='location.href="index.html"'>

submitで処理したいなら、一度XXX.phpでデータを受け取り
$_POST["cancel"]の値を見てindex.htmlにとばすという
手が妥当かと思います

この回答への補足

ご回答ありがとうございます。しかし、どうもうまくいきませんね…
PHP内で記述しているためかもしれませんが…
その他、方法あるでしょうか?

補足日時:2006/12/24 22:55
    • good
    • 0

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