【问题标题】:How to determine which image has been clicked using php如何使用php确定哪个图像已被点击
【发布时间】:2013-05-29 23:24:43
【问题描述】:

我的网页上有多个图像,我将它们用作按钮,我想知道用户单击了哪个图像并将其发布到另一个表单。我只关心单击了哪个图像,或者通过将任何值作为标志关联到每个图像并将其发布到其他形式或任何其他方式来完成。这是我发现相关的链接,但它不起作用PHP multiple image button submit form。我需要图像的值以进行进一步比较。

这是我的代码:

<FORM NAME ="form1" METHOD ="POST" ACTION = "SimulatedOutput.php">
<input type="image" name="rateButton[1]" src="observation1.jpg" width="400" height="300" value="1">T
<input type="image" name="rateButton[2]" src="observation2.jpg" width="400" height="300" value="1">T
<input type="image" name="rateButton[3]" src="observation3.jpg" width="400" height="300" value="1">T
<input type="image" name="rateButton[4]" src="observation4.jpg" width="400" height="300" value="1">T

SimulatedOutput.php
<?php
if ( isset( $_POST['rateButton'] ) ) {
        foreach ( $_POST['rateButton'] as $key => $value ) {
        echo 'Image number '.$key.' was clicked.';

    }
    if(name==rateButton[1])
    {
      //do something as required
    }
    else if(name==rateButton[2])
    {   .....}

    }
?>

【问题讨论】:

  • 恐怕您需要更改命名。看到var_dump($_POST); 也会很有趣
  • 设置input 标签如何在您的页面上显示图像?您想将图像用作按钮。为什么不在&lt;a&gt;&lt;/a&gt; 块中包含img 标记?
  • 图像中的数据是您需要的唯一数据吗?如果是这种情况,您可以将图像包装在 中并将 GET 参数添加到链接(href)。
  • 我该怎么做?

标签: php image


【解决方案1】:

即使你这样做的方式可能不是最优雅的方式,假设这正是你想要的方式,那么这段代码也许会有所帮助:

<?
    if( $_POST['rateButton'] ) {
        $keys = array_keys($_POST['rateButton']);
        $clicked = $keys[0];
        print "Image pressed: $clicked";
    }
?>

<form method="post">
    <input type="image" name="rateButton[1]" src="observation1.jpg" width="400" height="300" value="1">T
    <input type="image" name="rateButton[2]" src="observation2.jpg" width="400" height="300" value="1">T
    <input type="image" name="rateButton[3]" src="observation3.jpg" width="400" height="300" value="1">T
    <input type="image" name="rateButton[4]" src="observation4.jpg" width="400" height="300" value="1">T
</form>

【讨论】:

  • 我没有通过我的 php 脚本获得任何输出,即使是我发布的那个
  • 那么问题可能出在其他地方。上面的代码工作并打印点击图像的数量,这就是你想要的。
【解决方案2】:

您可以使用&lt;a&gt; 简单地使用图像

HTML 代码:

<a href="SimulatedOutput.php?value=1"><img src="http://yoursite.com/image1.jpg"></a>
<a href="SimulatedOutput.php?value=2"><img src="http://yoursite.com/image2.jpg"></a>
<a href="SimulatedOutput.php?value=3"><img src="http://yoursite.com/image3.jpg"></a>

PHP 代码:

if(isset($_GET['value'])) 
{
    $your_value = $_GET['value'];
}

if($your_value=="1")
{
   echo 'Image number '.$your_value.' was clicked.';
}
else if($your_value=="2")
{   
    echo 'Image number '.$your_value.' was clicked.';

}else{
    echo 'Image number '.$your_value.' was clicked.';
}

这是一个非常简单的代码,可让您了解基础知识。您可以在此处使用 SWITCH 或简单地获取值并基于它来执行您的功能。但是上面的代码应该给你足够的信息来开始。

【讨论】:

【解决方案3】:

如果您需要将其作为帖子进行,一种方法是使用将方法设置为 post 的表单:

<form method=POST id=x>
  <input type="image" name="rateButton[1]" src="observation1.jpg" width="400" height="300" value="1" onclick='document.getElementById("x").submit();'>T
  <input type="image" name="rateButton[2]" src="observation2.jpg" width="400" height="300" value="1" onclick='document.getElementById("x").submit();'>T
  <input type="image" name="rateButton[3]" src="observation3.jpg" width="400" height="300" value="1" onclick='document.getElementById("x").submit();'>T
  <input type="image" name="rateButton[4]" src="observation4.jpg" width="400" height="300" value="1" onclick='document.getElementById("x").submit();'>T
</form>
<?php
if ( isset( $_POST['rateButton'] ) ) {
    foreach ( $_POST['rateButton'] as $key => $value ) {
        echo 'Image number '.$key.' was clicked.';
        switch ($key) {
                case 1:
                // Do something for button 1
                break;
                ///...
        }
    }

}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多