0

我一直在创建一个网站,以允许用户对其他用户上传的图像进行评分。我的代码运行良好。用户会看到图像、一个标记图像的按钮、10 个用于选择评分的单选按钮和一个提交按钮(都在同一个表单中)。

我的问题是,当用户单击单选按钮时,我想删除提交按钮并处理表单。这样做的问题是标志按钮(图像按钮)也在提交表单。我的代码如下:

HTML

<form name="ratebox" action="Box.php?bid=<?php echo $boxId ?>" method="post">
    <table style="margin: 0 auto;">
        <tr>
            <td colspan="2"><img src="img/boxes/<?php echo $boxId ?>.png" title="<?php echo $boxName ?>" height="350" width="350"></td>
        </tr>
    <tr>
    <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"
        />
        </td>
    </tr>
    <tr>
        <td colspan="2" style="text-align:center;">
            1<input type="radio" name="rdoRate" value="1" >
            2<input type="radio" name="rdoRate" value="2" >
            3<input type="radio" name="rdoRate" value="3" >
            4<input type="radio" name="rdoRate" value="4" >
            5<input type="radio" name="rdoRate" value="5" >
            6<input type="radio" name="rdoRate" value="6" >
            7<input type="radio" name="rdoRate" value="7" >
            8<input type="radio" name="rdoRate" value="8" >
            9<input type="radio" name="rdoRate" value="9" >
            10<input type="radio" name="rdoRate" value="10" > 
        </td>
    </tr>
    <tr><td colspan='4' align='center'><input type='submit' name='rate_submit' value='Rate'></td></tr>
</table>
</form>

PHP

if (isset($_POST['flag_submit_x']))
{
        //Code to process the flagged image
}

if (!empty($_POST['rate_submit']))
{
        //Code to process the rated image
}

有什么方法可以在按下单选按钮时提交表单并检索已按下的单选按钮的值?

4

3 回答 3

2

是的,您需要为此使用 Javascript。使用 jQuery,

$('input[type=submit]').click(function(){
     return false;
});

$('input[type=radio]').click(function(){
    $('form').submit();
});

您需要学习如何使用 $.ajax() 将信息传入和传出 PHP。读这个。

于 2013-02-06T12:10:46.837 回答
0

当然有,为什么不为每个按钮附加一个 js 函数并让它将值发送到服务器,无论是 ajax 还是常规的。

function submitRate(image_id, rating){
//here you would do the magic:)
//maybe grab other form fields or just the rating
}

在你的按钮中onclick="submitRate()"

于 2013-02-06T12:12:02.297 回答
0

1)删除提交输入。

2)使表单提交为假:

<form id="ratebox" name="ratebox" action="" method="" onSubmit="return false;">

3)将邮政编码放到提交页面:

$.post("Box.php?bid=<?php echo $boxId ?>", $("#ratebox").serialize());
于 2013-02-06T12:27:38.697 回答