2012-03-09 7 views
0

この質問は私が初心者であることを示します。状況はこれです。写真コンテストです。 人が写真をアップロードし、同じ行の右側にチェックボックスが付きます。 写真が好きなら、有権者はチェックボックスをオンにします。彼らは最大5枚の写真を選択することができます。フォーム内のすべてのチェックボックスを読み、1つの送信ボタンが別のフォームにある方法はありますか?

私の問題は、MySQLではなく、フォームで簡単です。各行には、フォームであるチェックボックスがあります。 SUBMITボタンが問題です。私が仕事を提出することがわかる唯一の方法は、各チェックボックスにサブミットボタンを付けることです。もちろん、それはばかげている。私が望むのは、チェックボックスをすべて読んで、有権者が終了したらボタンを1つ送信することです。これに時間を費やして、投票者がクリックして、チェックされたすべての値をデータベースに一度に挿入することができるSUBMIT自体を持つ方法を見ることはできません。

概念はありますか?私はこの音が非常に原始的であることを知っていますが、ただこれに入っています。

おかげで先に任意のヘルプ

+0

いくつかのサンプルコードを投稿してください。 –

答えて

0

のための時間のあなたは、単一のHTML formタグ内のすべてのチェックボックスを囲み、その中に送信ボタンを持つことができます。それは自動的にあなたがすべてのチェックボックスを介して実行するためにはJavaScript/jQueryのを使用することができます

それとも

すべてのチェックボックスにデータを提出します。フォームを提出してください。

+0

これがフォームの仕組みです。その部分を得ました。私は "javascriptを使用することができます/ jQueryは私には秘密です。jQueryに精通しているわけではありませんが、私は単純なもののために使っています。 – gcarterm

0

まあ、外出したいデータを手に入れて送信するためのあらゆる種類のJavaScriptがありますが、単純にしておきましょう。

[voteform.html] 

<form action="process_script.php"> 
    <img src="image1"><input type="checkbox" name="vote_for_image[]" value="1"> 
    <img src="image2"><input type="checkbox" name="vote_for_image[]" value="2"> 

    <input type="submit"> 
</form> 

...その後...(あなたがコードを記入するために[DATABASE ...]ブロックはちょうど保有者を配置している[リターンエラー...]を注意してください)

[process_script.php] 

<? 
    if (count($_GET['vote_for_image'] > 5) { 
     [RETURN ERROR 'Please select no more than 5 images to vote for'] 
    } 
    else { 
     foreach ($_GET['vote_for_image'] as $index => $image_id) { 
      [DATABASE INSERT OR UPDATE FOR $image_id] 
     } 
    } 
?> 
+0

提案に感謝します。 – gcarterm

0
上記の各チェックボックスのname属性として checkbox[]を設定し、提出に使用すると、配列

<body> 
    <form action="checkbox.php" method="post"> 
    <input type="checkbox" name="checkbox[]" value="a"> 
    <input type="checkbox" name="checkbox[]" value="b"> 
     <input type="checkbox" name="checkbox[]" value="c"> 
     <input type="checkbox" name="checkbox[]" value="d"> 
     <input type="submit" name="Submit" value="Submit"> 
    </form> 

    <?php 
     if(isset($_POST['Submit'])) 
    { 
     echo $_POST['checkbox']; 
     } 
    ?> 
</body> 

としてvaliuesに対処することができます

はあなたに

を与えます
Array ( 
    [0] => a 
    [1]=>b 
    [2] => c 
    [3]=>d 
) 
+0

提案に感謝しました。私はそれらを私のコードに適用しようとしましたが、巨大な障害があります。 (各投稿には写真thumnailsのみのコンテンツが含まれています)最初に行う必要があるのは、すべての入力行をフォームに入れることです。完了したら、あなたの提案を使うことができます私は前もって設定したフォームを持っているのではなく、すべての投稿のIDを配列で得ることができますが、配列を使ってフォームに入力するにはどうすればいいですか? – gcarterm

0

このコードを試してみてください // HTML

<form method='post'> 
    <input type='checkbox' name='photo[]' value='1' /> 
    <img src='test1.jpg' /> 

    <input type='checkbox' name='photo[]' value='2'/> 
    <img src='test2.jpg' /> 

<input type='submit' value="Submit" name="submit" /> 
</form> 

// PHP

if(isset($_POST['submit'])) 
{ 
    if(isset($_POST['photo'])) 
    { 
     if(count($_POST['photo']) > 5) 
     { 
      // Display error msg 
     } 
     else 
     { 
     // Contains all ids voted on 
      $img_ids=explode(',',$_POST['photo']); 
     // insert or update DB for the image ids 
     } 
    } 
} 
関連する問題