-2

たとえば、ユーザーがアンケートに投票できるサイトがあるとします。

また、各投票がデータベース内にあり、各投票には一意の ID 列と、質問を格納する列、賛成票の列、反対票の列があります。

そして、ユーザーが投票を表示できるページがあるとしましょう。そのため、すべての投票についてデータベースにクエリを実行し、それらすべてをループして画面に出力し、各質問の横にラジオ ボタン フォームを配置して、質問に yes/no を投票してから送信できるようにします。

ここで助けが必要です。たとえば、画面に何百もの投票があり、ユーザーが 1 つの投票の横にある [送信] ボタンをクリックして投票した場合、レコードを更新する必要がある一意の投票を特定するにはどうすればよいでしょうか?

つまり、ユーザーが特定の送信ボタンをクリックしたときに、どの投票のレコードを更新するかがわかるように、各投票の ID を独自の送信ボタンに関連付けるにはどうすればよいのでしょうか。

Database: A_Database

Table: Polls
ID        Question           Yes    No
1       "Is the sky blue?"    0     0
2       "Is water wet?"       0     0

これがデータベースの構造です。ここで、すべての質問を照会し、それらを画面と投票を送信するためのフォームに出力します。

$query = SELECT * FROM `Polls`;
   if ($query_run = mysql_query($query)) {
        $count = 0;
        $array = mysql_fetch_assoc($query_run);
        while ($count < mysql_num_rows($query_run)) {
            echo '<strong>Poll: Yes/No:</strong>'.'<br>';
            echo mysql_result($query_run, $count, 'Question').' ';
            echo mysql_result($query_run, $count, 'yes').'/';
            echo mysql_result($query_run, $count, 'no').' ';
                            echo '<form><input type="radio" name="vote"> yes
                                        <input type="radio" name="vote"> no 
                                        <input type="submit" name="submit" value="vote">
                                  </form>';
            $count = $count + 1;
        }
    } else {
        echo mysql_error();
    }

これで、すべての投票が画面に出力され、それぞれの横に送信ボタンが表示されます。私の質問は、ユーザーが投票して特定の送信ボタンをクリックしたときに、どの投票のレコードを更新するかがわかるように、各送信ボタンを独自の投票に関連付ける方法です。

4

2 に答える 2

0

foreach poll のように聞こえますが、一意の ID を使用してください。jQuery を使用して、uniqueID の送信ボタンをクリックすると、ajax POST リクエストを送信してデータベースを更新し、成功した場合に画面のポーリング データを更新します。

あなたがあなたの作品を見せてくれなければ、あなたの説明から私がそれをやっているように聞こえる以上の具体的な情報を提供することはできません.

于 2012-06-25T22:09:10.083 に答える
0

データベースの行を更新することは、php だけでは不可能です。Javascript を使用する必要があります。

PHP はサーバー側の言語で、Javascript はクライアント側の言語です。

これは、Web ブラウザーが表示する機会を得る前に、サーバーが PHP を使用してブラウザーで印刷するための html ページをレンダリングすることを意味します。サーバー側の言語が最初に実行されるため、サーバーがページ全体を再度ロードしない限り、データベースを PHP で変更することはできません。

これが、これに Javascript を使用する必要がある理由です。Javascript はクライアント側の言語であるため、Web ブラウザーの範囲内で実行されます。このため、Javascript を使用するとデータベースを更新できます。

Web ページ全体を再ロードせずにページ上の要素を投稿および更新するこの Javascript メソッドは、AJAX と呼ばれます。

Javascript を学びたくない場合は、PHPLiveXライブラリを使用して PHP で AJAX を使用できます。それは良いことですが、一度使用すると、Javascript を使用する方がより実用的である理由がわかるかもしれません。私はJQueryを使用しますが、それは Javascript で書かれています。

于 2012-06-25T22:33:37.227 に答える