$ _POST,图像表单和mysql。如何让它们一起工作?

时间:2012-03-30 19:58:40

标签: php mysql html forms function

我正在努力让网站正常运转。我所拥有的基本上是两个显示的图像(随机,从mySQL数据库中取出)。我需要做的是(当用户点击其中一个图像时)以下内容:

  • 更新页面,传递有关所选图像的信息(提交表单);
  • 将一个数据添加到数据库(upvote图像)

我需要使用$ _POST将值数组传递给下一页。所以我想:

<form name="input" action="the_page.php" method="POST">
<input type="image" 
       name="img" 
       src="image.png"
       value ="dat1[\"data1\",\"data2\",\"data3\"]">
       <!-- If value must be a single string, I'll use hidden inputs-->
</form>

<form name="input" action="the_page.php" method="POST">
<input type="image" 
       name="img" 
       src="image2.png"
       value ="dat2[\"data1\",\"data2\",\"data3\"]">
</form>

然后,我可以使用更新记录的一点php upvote()函数在mySQL数据库上投票选择图像。在加载新页面时完成upvoting过程。由此,我有几个问题:

  1. 我猜这些图像会充当按钮,对吧? (他们应该提交表单,因此刷新页面)。如果没有,我怎么能实现这个目标?我无法使用链接(因为我无法将值添加到它)。也许是一个javascript函数?但我不知道如何提交表格......
  2. 一旦页面被重新加载,是否意味着只有一个表单中的数据被提交,所以我可以通过简单地调用PHP变量$ _POST ['img']并获取一个数组来检索数据?
  3. 编辑:我现在设法使一切工作,与我最初建议的略有相似。感谢AJAX的建议,因为它帮助我解决了这个问题(查找了AJAX教程,找到了解决方案)。

    这是我的解决方案:

    <?php
    echo "<form name=\"input\" action=\"F2F.php\" method=\"POST\">";
    echo "<input type=\"hidden\" name =\"table\" value=\"".$table1."\">";
    echo "<input type=\"image\" name=\"nom\" src=\"".$IMG_Route1."\" value =\"".$Nom_base1."\" border=\"0\">";
    echo "</form>";
    ?>
    

    (图片去的地方)

    然后,在标题上:

    <?php
    if ($_POST['nom']||$_POST['nom_x']){
        if (!$_POST['nom']){
            echo 'Could not retrieve name. $_POST[\'nom_x\'] = '.$_POST['nom_x']. mysql_error();
            exit;
        }
        if (!$_POST['table']){
            echo 'Could not retrieve table. $_POST[\'table\'] = '.$_POST['table']. mysql_error();
            exit;
        }
        upvote($_POST['table'],$_POST['nom']);
    }
    ?>
    

1 个答案:

答案 0 :(得分:1)

您可以使用一种形式和一组单选按钮来简化操作。单击标签将切换单选按钮。您可以使用逗号分隔每个复选框的多个值,稍后您可以将其抽象出来(见下文)

<form name="input" action="the_page.php" method="POST">
    <ul>
        <li>
            <label>
                <img src="whatever.jpg" />
                <input type="radio" name="selectedImage" id="img1" value="12,16,19" />
            </label>
        </li>
        <li>
            <label>
                <img src="whatever2.jpg" />
                <input type="radio" name="selectedImage" id="img2" value="12,16,19" />
            </label>
        </li>
    </ul>
</form>

您可以通过为更改事件添加侦听器来检测何时选择单选按钮,然后提交表单。

$('input[name="selectedImage"]').change(function() {
    $('form[name="input"]').submit();
});

要抽象多个值,您可以使用PHP来爆炸表单结果,这将返回值的数组。

$selectedImageValues = array();
$selectedImageValues = explode(",", $_POST['selectedImage']);

从那里你可以拉出不同的值并将数据保存到数据库中。