2012-02-09 12 views
2

クリックしたときに値を送信し、phpスクリプト(mySQLクエリを実行する)を実行する画像ボタンを作成するためのベストプラクティスは何ですか。ボタンは画像でなければならず、デフォルトの送信タイプのボタンではありません。私は数日間これをグーグルで見つけましたが、私はまだ悲しい答えを見つけることができません。私が取得し、私はイメージボタンでPHPスクリプトを実行する方法は?

if (isset($_GET['variable'])) 

に収集することができた自分自身へのリダイレクトページにいくつかの画像ボタン(値が含まれているリンクを持つ画像)を作る使用することができますが、私は本当に、ユーザーが見たいと思っていません値。私は、少なくともいない場合は、クリックされたときには、ページをリロードし、私は

if (isset($_POST['submit_value'])) {$var = $_POST['submit_value']; } 

で値をキャプチャして使用することができますが、私はこの仕事をするように見えることはできませんということで一つだけのボタンを持つフォームを作成してみましたボタンはイメージです。だから誰でもこれを行うためのまともな方法を知っている場合は、共有してください。例えばAJAXである必要はありません。ページのリロードは完全にうまくいきます。私はこれを行うにはJavaScriptが必要だと思っていますが、実際にはJavaScriptが分かりませんので、うまくいくでしょう。


SELF-ANSWER

あなたの答えのすべてをありがとうございました。私は、最も単純な作業方法は、入力値の型を持つフォームを作成し、その値を持つhidden型の入力タイプと入力型を作成することです。

<form action="some_page.php" method="POST"> 
    <input type="hidden" name="variable" value="50" /> 
    <input type="image" src="image.png" name="submit" /> 
</form> 

PHP側では値をキャッチするためにこれを使用します。

if (isset($_POST['variable'])) { $var = $_POST['variable']; } 

これは私の問題に最も適した解決策です。あなたの迅速な対応についてもう一度感謝します。

+2

AJAXは、ボタンごとに個別のフォームを作成するよりはるかにクリーンです。また、ユーザーにリクエストの内容を見せたいのではないでしょうか? – Blender

+0

@Blenderボタンごとに個別のフォームを作成する必要はありません。 – Kaii

答えて

0

あなたはPOSTフォームを作成し、javascriptをせずに送信ボタンとして画像を使用することができます。

<input type="image" src="myimage.gif" name="submit"> 
3

画像のボタンはかなり混乱しています! :(

私は、ユーザーがフォームを送信する場合、この方法で値が常に表示されます<input type="submit">普通に背景画像を置くためにCSSを使用することをお勧めし例えば

(例えば、要求で送信された。):。。

.myImageSubmitButton{ 
    width: 100px; 
    height: 22px; 
    background: url(images/submit.png) no-repeat; 
    border: none; 
    /** other CSS **/ 
} 

ここ悪い事はあなたが使用する画像に応じて幅と高さに設定しなければならないということです...

1

ただ、注意:ユーザーがしたい場合、彼らは、例えばワットのために、値を取得することができますファイヤーバック。これは変更できません。

また、HTMLボタンの画像にすることができます。 thisを参照してください。

または、onclickで画像にXMLhttprequestを使用してください。 XMLHTTPRequestのチュートリアルはたくさんあります。例えば、this

0

呼び出す

<img src="image.jpg" onclick="document.formname.submit();" /> 
0

makeは私がこれを行うための唯一の2つの方法が「あなたのような(取得していると思うこと

<input type="submit" style="background-image:url(image); border:none; 
width:10px;height:10px; color:transparent;" value=" " name="submit_value"/> 
0

のようなイメージで送信ボタンを画像上のonclickイベントを使用して提出またはイメージボタンがタイプサブミットを持つ入力であるフォームを使用して)。

送信ボタンのスタイリングを変更して背景画像を表示することができます。そうでない場合は、私の無知を無視してください。

2

それはあなたがこのような別のスクリプトにフォームをリダイレクトすることができ<button>でなければならない場合:

<form action="somescript.php" method="POST" name="myform"> 
    <input type="submit" name="submit" value="normal submit"> 
    <button name="foo" type="button" value="bar" 
     onclick="document.myform.action = 'someotherscript.php'; 
       document.myform.submit()"> 
     <img src="someimage.png"> 
    </button> 
</form> 

または隠しフィールドを変更し、このように同じページにフォームをポスト:

<form action="somescript.php" method="POST" name="myform"> 
    <input type="submit" name="submit" value="normal submit"> 
    <input type="hidden" name="action" id="hidden_action" value="normal_action"> 
    <button name="foo" type="button" value="bar" 
     onclick="document.getElementById('hidden_action').value = 'special_action'; 
       document.myform.submit()"> 
     <img src="someimage.png"> 
    </button> 
</form> 
関連する問題