PHP多图像按钮提交表单

PHP多图像按钮提交表单,php,html,submit,imagebutton,Php,Html,Submit,Imagebutton,我一直在创建一个网站,在那里我的用户可以对上传的图像进行评分。目前,我使用单选按钮和提交按钮来获取用户评级并将其保存在系统中。我想改变这一点,以便代码使用图像点击来获得用户评级。到目前为止,我有以下代码,但它只适用于一个图像按钮。是否有任何方法可以根据单击的图像更改此设置以获得结果 代码: HTML <form> <input type="image" name="flag_submit" src="img/Flag.png"

我一直在创建一个网站,在那里我的用户可以对上传的图像进行评分。目前,我使用单选按钮和提交按钮来获取用户评级并将其保存在系统中。我想改变这一点,以便代码使用图像点击来获得用户评级。到目前为止,我有以下代码,但它只适用于一个图像按钮。是否有任何方法可以根据单击的图像更改此设置以获得结果

代码:

HTML

<form>
<input
        type="image"
        name="flag_submit"
        src="img/Flag.png"
        onmouseover="this.src='img/Flag_Click.png'"
        onmouseout="this.src='img/Flag.png'"
        height="30"
        width="30"
        />
</form>
是否有任何方法可以创建多个图像按钮,并在PHP代码中检测按下的图像按钮


  • 将名称更改为数组
    name=“flag\u submit[1]”
    。为每个图像指定不同的值,就得到了它

  • 将其作为php端的数组阅读:
    if(isset($\u POST['flag\u submit'][1])

  • 或者更好的方法是,如果
    $\u POST['flag\u submit']
    并找到所有值,则循环执行:

    foreach ( $_POST['flag_submit'] as $value )  {
        echo $value . ' has been clicked.';
    }
    

    
    T
    T
    T
    T
    
    在您的情况下,您不关心它发送什么值,只需要关心用于提交表单的密钥,因为始终只有一个密钥集


  • 将名称更改为数组
    name=“flag\u submit[1]”
    。为每个图像指定不同的值,就得到了它

  • 将其作为php端的数组阅读:
    if(isset($\u POST['flag\u submit'][1])

  • 或者更好的方法是,如果
    $\u POST['flag\u submit']
    并找到所有值,则循环执行:

    foreach ( $_POST['flag_submit'] as $value )  {
        echo $value . ' has been clicked.';
    }
    

    
    T
    T
    T
    T
    
    在您的情况下,您不关心它发送什么值,您只需要关心用于提交表单的键,因为始终只有一个键集。

    您可以有多个名称相同但值不同的元素,这些元素可以包含图像,只会发送已单击的元素的值

    有关更多信息,请参阅规范:

    您可以有多个具有相同名称但不同值的元素,这些元素可以包含图像,只有已单击的元素的值才会被发送


    有关更多信息,请参阅规范:

    以下是一个可能有用的技巧:

    我已创建表单的HTML页面:

    代码

    当我点击第二张图片时,我得到:

    <?php
    if($_POST['button'])
    {
        echo "you have pressed button ".$_POST['button'];
    }
    ?>
    <style>
        input.overridecss {
        background-color: transparent;
        border: 0px;
        background-position: center;
        background-repeat: no-repeat;
        background-image: url(http://i49.tinypic.com/rm2w0i.png);
    }
    </style>
    <form method="POST">
        <input type="submit" name="button" value="1" class="overridecss"/>
        <input type="submit" name="button" value="2" class="overridecss"/>
        <input type="submit" name="button" value="3" class="overridecss"/>
        <input type="submit" name="button" value="4" class="overridecss"/>
        <input type="submit" name="button" value="5" class="overridecss"/>
    </form>
    
    if (isset($_POST['flag_submit'][1]))
    

    这适用于Opera、IE和Mozilla。

    这里有一个技巧可能会有所帮助:

    我已创建表单的HTML页面:

    代码

    当我点击第二张图片时,我得到:

    <?php
    if($_POST['button'])
    {
        echo "you have pressed button ".$_POST['button'];
    }
    ?>
    <style>
        input.overridecss {
        background-color: transparent;
        border: 0px;
        background-position: center;
        background-repeat: no-repeat;
        background-image: url(http://i49.tinypic.com/rm2w0i.png);
    }
    </style>
    <form method="POST">
        <input type="submit" name="button" value="1" class="overridecss"/>
        <input type="submit" name="button" value="2" class="overridecss"/>
        <input type="submit" name="button" value="3" class="overridecss"/>
        <input type="submit" name="button" value="4" class="overridecss"/>
        <input type="submit" name="button" value="5" class="overridecss"/>
    </form>
    
    if (isset($_POST['flag_submit'][1]))
    
    这适用于Opera、IE和Mozilla。

    这可能会对您有所帮助

    
    input.overrideecss{
    背景色:透明;
    边界:0px;
    背景位置:中心;
    背景重复:无重复;
    背景图片:url(http://i49.tinypic.com/rm2w0i.png);
    }
    
    这可能会对您有所帮助

    
    input.overrideecss{
    背景色:透明;
    边界:0px;
    背景位置:中心;
    背景重复:无重复;
    背景图片:url(http://i49.tinypic.com/rm2w0i.png);
    }
    
    第一个代码对我来说很好用 将名称更改为数组名称=“flag_submit[1]”。为每个图像指定不同的值,就得到了它

    在php端将其作为数组读取:


    第一个代码对我来说很好 将名称更改为数组名称=“flag_submit[1]”。为每个图像指定不同的值,就得到了它

    在php端将其作为数组读取:



    将名称更改为数组
    name=“flag\u submit[1]”
    。为每个图像分配一个不同的值,你就得到了它。那么PHP代码会是什么来注册它呢?如果(isset($\u POST['flag\u submit'][1])对于这个特定的情况,DainisI提供了这个方法,但它不起作用。(请参见回答)将名称更改为数组
    name=“flag\u submit[1]”
    。为每个图像分配一个不同的值,你就得到了它。那么PHP代码会是什么来注册它呢?如果(isset($\u POST['flag\u submit'][1])对于这个特定的情况,DainisI提供了这个方法,但它不起作用。(见他的回答)我不太明白这是怎么回事。[1134118800]和[1134140400]的值是什么?它们是从哪里来的。为什么它们的结果分别是21和15?我不太明白这是怎么回事。[1134118800]和[1134140400]的值是什么?它们是从哪里来的。为什么它们的结果都是21和15呢?我试过了,但似乎不起作用。我将[1]-[10]添加到我的图像按钮的名称中,并使用if(isset($\u POST['flag\u submit'][1])回显“Number 1”。当我单击第一个图像时,文本编号1没有显示?您是否设置了
    onclick=“document.form.submit();
    事件?很抱歉,我的按钮名称有误。它工作得很好。谢谢您的帮助。好的,它一般都能工作…当我循环浏览$\u POST['flag\u submit']然后返回你在回答中所显示的值。我会得到随机值(14、23、24、29、17)等等。如果我单击按钮一,我每次都会得到不同的值。你给图像分配了什么值?我已经尝试过了,但它似乎不起作用。我将[1]-[10]添加到图像按钮的名称上,并使用了If(isset($)\POST['flag_submit'][1])回显“数字1”。当我单击第一个图像时,文本数字1没有显示?您是否设置了
    onclick=“document.form.submit();
    事件?很抱歉,我的按钮名称有误。它工作得很好。谢谢您的帮助。确定它正常工作……当我循环浏览$\u POST['flag_submit']然后返回你在答案中显示的值,我得到的是随机值(14,23,24,29,17)等等…如果我点击按钮一,我每次都会得到一个不同的值。你给图像分配了什么值?如果我在同一个表单中已经有多个其他输入按钮,但名称不同,这会起作用吗?取决于情况。你在表单上做什么?如果我已经
    Array
    (
        [stamp] => Array
            (
                [1134140400] => 15
            )
    
    )
    
    <?php
    if($_POST['button'])
    {
        echo "you have pressed button ".$_POST['button'];
    }
    ?>
    <style>
        input.overridecss {
        background-color: transparent;
        border: 0px;
        background-position: center;
        background-repeat: no-repeat;
        background-image: url(http://i49.tinypic.com/rm2w0i.png);
    }
    </style>
    <form method="POST">
        <input type="submit" name="button" value="1" class="overridecss"/>
        <input type="submit" name="button" value="2" class="overridecss"/>
        <input type="submit" name="button" value="3" class="overridecss"/>
        <input type="submit" name="button" value="4" class="overridecss"/>
        <input type="submit" name="button" value="5" class="overridecss"/>
    </form>
    
    if (isset($_POST['flag_submit'][1]))