2012-03-30 31 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']); 

從那裏你可以拉出不同的值,並將數據保存到數據庫。

相關問題