2017-11-24 7 views
2

私はリレーショナルデータベースとスレッド/コメントシステムを持っています。私は、サーバーが変更を気付かせるためにページをリフレッシュする必要があるので、upvotingに取り組む方法を考えるのは難しいです。同じページに滞在しているときにupvoteの機能はどのように行われますか? (PHP/MySQL)

私は2つの外部キー、ユーザーIDとスレッドID、およびその2つの組み合わせであるプライマリキーで構成される新しいテーブルUPVOTESTHREADを作成しました。私は実際にこれに挿入することができる唯一の方法は、いくつかのPOSTデータを提出する場合です。私は、これがユーザーにとって厄介な気がするのではないかと思います。また、ユーザーは自分が見ていた場所に戻ってくる必要があります。これは正しい解決策ではありません。これを行うより良い方法はありますか?

+5

はいいい方法があります。それは[AJAX](https://stackoverflow.com/questions/6009206/what-is-ajax-and-how-does-it-work)と呼ばれています。これは、ポストを送信したり、サーバーにリクエストを受け取り、ページをリロードせずに出力を受け取ります。 ajaxリクエストを受け取るサーバー上のスクリプトは、(あなたの場合には)db内の投票カウンタをインクリメントすることができます。 – Cashbee

+3

@Cashbeeが述べたことに加えて、それはまた、例えばinnerHTMLを使ってあなたのビュー内のDOM要素を更新するために使うことができる応答を返すことができるので、リフレッシュせずに視覚的なフィードバックを与えることができます。 –

+0

ありがとうキャシュビー。このためにAJAXの実装を検討します。 CS部門が提供するシニアデザインプロジェクトのほぼすべてがwebdevまたはmobile devを必要としており、私たちには利用可能な開発コースがありません...だから私はちょっとした騒ぎです。 – theupandup

答えて

2

はいいい方法があります。それはAJAXと呼ばれています。これは、ポストを送信したり、サーバーにリクエストを受け取り、ページをリロードせずに出力を受け取ります。

ajaxリクエストを受け取るサーバー上のスクリプトは、(あなたのケースでは)db内の投票カウンタを増分できます。

(通常はPHP)スクリプトは、ajax関数の成功ハンドラが受け取るもの(通常はjsonまたはステータスコード)を出力することもできます。それに応じてJavaScriptを使用してページを修正することができます。あなたのケースでは、現在の投票数を受け取り、カウントがある場合にupvoteボタンの隣の数を更新することができます。

関連する問題