2012-01-10 15 views
0

私はJavaScript/jQueryにあまり精通していませんが、ユーザーが投票に投票してページを更新せずに結果を表示できる投票スクリプトを作成しました。これは、jQueryのコードである私が思い付いてきました:入力から値を取得し、それをjQuery変数として使用する方法は?

$("#poll_yes").click(function(){ 
        $("#poll_options").html(ajax_load); 
        $.post( 
         "query.php?module=vote", 
         {answer: "yes", pid: "<? display($_GET['username'], poll_id); ?>", to: "<?= $_GET['username'] ?>"}, 
         function(responseText){ 
          $("#poll_options").html(responseText); 
         }, 
         "html" 
        ); 
       }); 
$("#poll_no").click(function(){ 
       $("#poll_options").html(ajax_load); 
       $.post(
        "query.php?module=vote", 
        {answer: "no", pid: "<? display($_GET['username'], poll_id); ?>", to: "<?= $_GET['username'] ?>"}, 
        function(responseText){ 
         $("#poll_options").html(responseText); 
        }, 
        "html" 
       ); 
      }); 

をこのページ上の入力要素のIDを取得し、それがその後、query.phpにクエリを送信し、IDに基づくでしょう。 query.phpは応答を送り返し、その応答がページに表示されます。

このスクリプトはうまく動作していますが、別の問題が発生しました。 1つのページに複数の投票が表示されている必要があります。私はSQLデータベースから投票を生成するためにphpを使用していますが、 "answer:no"、 "answer:yes"、 "pid:$ id"、 "to:$ username"フィールドから。これが可能であれば、各投票のためにページから複数の書式が必要でしょうか?または複数の入力で十分な形になるだろうか?

+0

でテストすることができます...があり、ウェブ上の多くの例があり、本当によくjQueryのに精通して取得することは非常に簡単です。 。 – trgraglia

答えて

1

の.val()関数を使用して簡単にフォームのfiledsを形成し得ることができますあなたは=各ポーリングするためのフォームを持っている、とタイプして入力としてPIDを含めることができます"隠された"。次に、yesまたはnoボタン(IDによる)でクリックを使用する代わりに、すべてのフォーム送信イベントにコールバックを添付します。これにより、2つの関数を1つのコールバックにまとめることもできます。

<script> 
$("form.Poll > input[type='button']").click(function(e) { 
    e.preventDefault(); 
    var form= $(this).closest("form"); 
    alert("QuestionId:"+$("input[name='QuestionId']", form).val()+" clicked on:"+$(this).val()); 
}); 
</script> 
<form method='POST' action='update.php' class='Poll'> 
    <input type='hidden' name='QuestionId' value='1'/> 
    Do you like jQuery? 
    <input type='button' name='Answer' value='Yes'/> 
    <input type='button' name='Answer' value='No'/> 
</form> 
<form method='POST' action='update.php' class='Poll'> 
    <input type='hidden' name='QuestionId' value='2'/> 
    Do you like AJAX? 
    <input type='button' name='Answer' value='Yes'/> 
    <input type='button' name='Answer' value='No'/> 
</form> 
<form method='POST' action='login.php'> 
    This form will fire like a normal form if you click on submit but it will not pass though the submit script defined above 
    <input type='submit' name='Answer' value='Login'/> 
</form> 

これは、ドキュメントを読んで、それはあなたに大いに役立つでしょうhttp://jsfiddle.net/te9YL/

+0

すべてのフォームにコールバックを添付することで、どういう意味がわかりません。いくつかのサンプルコードを提供できますか? – Xecure

1

はいあなたは値がjqueryの

$("#yourid").val(); 
関連する問題