2012-02-09 52 views
2

什么是创建一个图像按钮的最佳实践,它发送一个值并在单击时运行一个php脚本(执行一个mySQL查询)。该按钮必须是图像,而不是默认提交类型的按钮。我一直在Google上搜索几天,但仍然找不到一个可靠的答案。我可以使用GET,并提出一些图像按钮的页面重定向到本身,这(与包含值的链接的图像),那么我可以用如何让一个图像按钮运行一个PHP脚本?

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

收集,但我真的不希望用户看到值。我试图创建具有在它只有一个按钮,一个表单,点击后重新加载页面,我可以捕获并与

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

使用的价值,但我似乎无法使这项工作,至少不是当该按钮是一个图像。所以如果有人知道一个体面的方式来做到这一点,请分享。它不一定是AJAX,例如页面重新加载非常好。我猜我需要JavaScript来做到这一点,但我并不真正了解JavaScript,所以一个可行的例子会很好。


自答

感谢您对所有的答案的。我发现最简单的工作方式是创建一个带有输入类型的图像的表单,该类型的图像使得提交以及带有该值的隐藏输入类型成为可能。

<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 2012-02-09 17:00:12

+0

@Blender不需要为每个按钮创建单独的表单。 – Kaii 2012-02-09 17:12:37

回答

0

你可以做一个POST形式,并使用图片作为提交按钮无javascript:

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

图片按钮是非常乱! :(

我会建议使用CSS把背景图像普通<input type="submit">这样值将始终是可见的,当用户提交表单

例如,(例如,在请求发送):

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

的事情在这里,你必须设置宽度和高度根据使用的图像......

1

刚一说明:如果用户希望,他们就可以检索值,例如W^ith Firebug。这不能改变。

另外,HTML按钮可以是图像。见this

或者在图像上使用XMLhttprequest。有许多关于XMLHTTPRequest的教程。例如this

0

调用提交使用onclick事件的图像

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

化妆与形象提交按钮这样的

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

我想这样做的只有两个办法都用得到(像你”已经声明),或者使用表单按钮是输入类型为submit的表单。

我敢肯定,你可以改变提交按钮的样式,以便它有一个背景图像,如果没有,那么忽略我的无知。

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> 
相关问题