2012-03-30 32 views
0

我正在尝试使网站工作。我所拥有的基本上是两个图像(从mySQL数据库中随机取出)。我需要做的是(当用户点击其中一个图像时)以下内容:

  • 更新页面,传递关于所选图像的信息(提交表单);
  • 一条数据添加到所述数据库(给予好评图像)

我需要使用$ _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给予好评()函数给予好评的MySQL数据库所选择的图像。 upvoting过程在加载新页面时完成。由此,我有几个问题:

  1. 我猜图像将作为按钮,对不对? (他们应该提交表格,从而刷新页面)。如果不是,我该如何做到这一点?我无法通过链接进行操作(因为我无法将值添加到它)。也许一个JavaScript函数?但我不知道如何以这种方式提交表格...
  2. 一旦页面重新加载,是否意味着只有来自一个表单的数据已被提交,所以我可以通过简单地调用PHP变量$ _POST ['img']并返回一个数组?

编辑:我现在设法让所有的工作,有点类似于我最初提出的。感谢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']); 
} 
?> 
+0

您是否先试用过?这是查看它是否有效的好方法。我们无法帮助您解决那些先未尝试的问题。 – Blake 2012-03-30 20:52:10

+1

你可以用AJAX做到这一点,同时,我认为这将是最简单的方法 – gosukiwi 2012-03-30 21:00:02

+0

太多的问题。 – itachi 2012-03-30 21:01:47

回答

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> 

当通过添加监听change事件选择的单选按钮,您可以检测分隔多个值,然后提交表格。

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

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

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

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

相关问题