2016-11-26 8 views
0

実際にプログラミング言語を知らなくても、プロジェクトを改善するために学校に課題があります。プロジェクトの骨子があり、そこにいくつかの機能を追加する必要があります。javascript/htmlで反応評価ボタンを作成

スケルトンはブログでログイン/登録/があり、記事の作成、編集、削除ができます。

私の最初のアイデアは、変数にリンクされた好き嫌いの2つのボタンを追加することです。好きなボタンをクリックすると格付けが1ずつ上がり、嫌いな方はそれを減らします。私はボタンを追加しましたが、私はJavaScriptコードに苦労しています。これは次のようになります。

<script> 
    var rating = 0; 

    function IncreaseRating() { 
     document.getElementById('like').value = ++rating; 
    }; 
    function DecreaseRating() { 
     document.getElementById('dislike').value = --rating; 
    }; 
</script> 
<button id="like" type="button" onclick="IncreaseRating()">Like</button> 
<button id="dislike" type="button" onclick="DecreaseRating()">Dislike</button> 
<script>document.write(rating)</script> 

ただし、動作しません。どうにか私は評価値を表示することができましたが、それは増減しません。問題を解決するにはどうしたらいいですか?

+0

あなたの問題は、ページの読み込みに 'rating'しか出力しないことです。どちらの関数も 'rating'の値だけを変更しますが、すでに表示されている値は更新しません。 – Sean

答えて

0

コードの順序は問題です。要素がDOMに含まれる前にスクリプトタグを実行してください。

修正するには、順序を変更するだけで、ドキュメントの一番下、つまり終了タグの直前にスクリプトタグを配置します。

<button id="like" type="button" onclick="IncreaseRating()">Like</button> 
<button id="dislike" type="button" onclick="DecreaseRating()">Dislike</button> 
<script> 
    var rating = 0; 

    function IncreaseRating() { 
     document.getElementById('like').value = ++rating; 
    }; 
    function DecreaseRating() { 
     document.getElementById('dislike').value = --rating; 
    }; 
</script> 

<script>document.write(rating)</script> 
+0

このコードを試しましたか? 'ドキュメントとして。write() 'がどちらの関数の中にも存在しない場合、' rating'が変更されたとき、すでにページロード時に出力されているので何も起こりません。 – Sean

0

問題は、要素を作成した後に本体でスクリプトを呼び出していることです。その問題は、あなたの要素に関数Xを呼び出すように指示しましたが、まだ宣言されていない(要素を作成した直後に宣言した)ものとしては見つかりません。

2つの解決策がありますので、のようなDOM要素のイベント処理するために処理する

  • 使用jQueryのイベント:$('#like').click(function() { //actions here });
  • またはあなたのメタデータを使用してヘッダーでネイティブのJavascriptのコードを入れては、このようにそれがロードされ、あなたの関数はページロード時に(要素が作成される前に)宣言されます。

https://jsfiddle.net/h6sveuju/7/

お知らせどのようにあなたが

荷重タイプ

ないラップに設定されていることがわかりJavascriptの設定をクリックした場合 - で

また

あなたは現在、それはただの値になるように、ボタンのテキストを更新してしまうと、明らかに間違っている文字列(同様嫌い)されているボタンのテキストをインクリメントしようとしていますボタンのテキストはのようになります。

+0

コードは機能していますが、問題があります。ページを更新すると、評価は0に戻ります。どうすればそれを保存できますか? –

+0

質問はどこに保存しますか?そのデータベースの場合は、サーバー上にSQL接続を作成し、その値をページにロードします。いずれかのボタンをクリックすると、データベースに新しい値を保存する要求が作成され、ページが再ロードされると値がロードされます。 –

+0

値を記事にマップしたいと思います。各記事にはタイトル、コンテンツ、ID、カテゴリ、タグがありますが、なぜデフォルトの評価変数0を追加してスクリプトでそれを増やせないのですか?これが可能なら、どうすればいいのですか?私はjavascript/phpには何も知らない知識があり、それは仕事をほとんど不可能にします。 –

関連する問題