2012-03-30 3 views
0

私はウェブサイトを稼働させようとしています。私が持っているものは、基本的には2つの画像が表示されます(ランダム、mySQLデータベースから取り出されます)。私がする必要があるのは、(ユーザーが画像の1つをクリックすると)次のような画像が表示されます:

  • 選択した画像についての情報を渡します(フォームを送信してください)。
  • は、私は次のページに値の配列を渡すために、$ _POSTを使用する必要が

(画像をupvote)データベースへのデータの一枚を追加します。だから私は考えた:

<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データベースに選択した画像をupvoteすることができます。 upvotingプロセスは、新しいページがロードされたときに実行されます。これから、私はいくつかの質問があります:

  1. 私は画像がボタンとして機能すると思いますよね? (彼らはフォームを提出し、ページをリフレッシュすることになっています)。そうでない場合は、どうすればいいですか?私はリンクでそれを行うことができません(私はそれに値を追加することはできません)。たぶん、javascript関数ですか?しかし、私はどちらかの方法でフォームを提出する方法を知らない...
  2. ページが読み込まれると、1つのフォームのデータだけが提出されたことを意味するので、単にPHP変数$ _POST ['img']と配列を取得しますか?

EDIT:私は最初に提案したものと少し似ています。 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

+1

あなたはすぐにAJAXでそれを行うことができます、また、私はそれが最も簡単な方法だと思う。 – gosukiwi

+0

あまりにも多くの質問があります。 – itachi

答えて

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']); 

そこからさまざまな値を取り出し、データをデータベースに保存できます。

関連する問題