• 締切済み

お問い合わせフォーム。確認画面でつまずいてます。

phpでフォームを作成しています。フォーム確認画面で思うように動作しません。 確認画面の「修正する」ボタンを「input type="submit"」から「input type="image"」に変更し、画像ボタンとしたいです。 ソースを下記のように書き換えると、前画面に戻らず、そのまま送信してしまいます。 <input type="hidden" name="status" value="send">'."\n".'<input type="submit" value="送信する"> <input type="submit" name="edit" value="修正するぞおお"> ↓ <input type="hidden" name="status" value="send">'."\n".'<input type="image" name="send" src="../images/send_btn.gif" value="送信する"> <input type="image" name="edit" src="../images/reset_btn.gif" value="修正するぞおお'"> 「修正する」ボタンを画像に変更するには、他に追記する必要があるのでしょうか? 正しい動作は、「修正する」ボタンを押すと、入力項目を残した状態のフォームへ戻ります。 その動作もphpのどこに記載されているのか、今いち分かっておりません・・・。 「魔法のメールフォーム MagicalForm」http://magical-form.com/ を利用しています。 初心者で申し訳ないのですが、どうぞよろしくお願いいたします。

みんなの回答

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

print <<<eod <form> <input type="submit" name="edit" value="修正するぞおお" style="display:none"> <input type="hidden" name="status" value="send"> <input type="image" name="send" src="・・・" value="送信する"> <img src="・・・" alt="修正するぞおお" onclick="this.parentNode.elements['edit'].click()"> </form> eod; みたいにヒアドキュメントで処理すればエスケープの問題は回避できます 場合によっては print '<img src="・・・" alt="修正するぞおお" onclick="this.parentNode.elements[\'edit\'].click()">'; みたいにきちんと処理してもよいでしょう

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

おそらくeditの値をみて場合わけをしているのでしょうね やりかたは2つ考えられます (1)edit.xが送られてきたら修正だと判断する (2)javascriptで処理する <form> <input type="submit" name="edit" value="修正するぞおお" style="display:none"> <input type="hidden" name="status" value="send"> <input type="image" name="send" src="・・・" value="送信する"> <img src="・・・" alt="修正するぞおお" onclick="this.parentNode.elements['edit'].click()"> </form>

st_283
質問者

補足

ありがとうございます! (1)の方法が正しい方法だとは思うのですが、phpで追記の仕方が分からないため、(2)で試しています。 ですが、フォーム自体がphp作成されており、onclick="this.parentNode.elements['edit'].click()" を呼び出そうとしたら Parse error: syntax error, unexpected T_STRING in ○○.php on line 133 のエラーが出てしまいます。 シングルクォーテーション、ダブルクォーテーションがの問題かな?と思いましたが上手く動きませんでした。 ご教授いただけると助かります。どうぞよろしくお願いいたします。