1

次のJavaScriptコードがあります:

game.bind('gameover', function(seconds) {
    setTimeout(function() {
      var rank = game.getRank(seconds);
      scorecard.find('.time').text(seconds + ' sec');
      scorecard.find('.rank').text(rank[0]);
      scorecard.find('.byline').text(rank[1]);
      ...more code

次の div では、このデータが表示されます (js スクリプトが機能しているため)。

<div class="inner">
  <h3>Nice job! Your time:</h3>
  <h1 class="wobble time"><!-- 15 seconds --></h1>
  <h2 class="rank"><!-- Friendly Mallard --></h2>
  <h3 class="byline"><!-- (That's pretty good) --></h3>
</div>

ここで、結果もフォームに入れたいので、データベース (mysql) に投稿できます。そこで、フォームを追加して同じ div に配置しました。

<form id="form" action="updatescore.php" method="post">
  <input type="text" id="time" name="time" value="" />
  <input type="text" id="rank" name="rank" value="" />
  <input type="text" id="byline" name="byline" value="" />
</form>

JS で、行 (例: scorecard.find('.time').text(seconds + ' sec');) をコピーし、ID を探すように変更したので、次のように.js#に渡しました。

scorecard.find('.time').text(seconds + ' sec');
scorecard.find('#time').text(seconds + ' sec');
etc

したがって、これは機能すると思いますが、フォーム入力は空のままです。私は何を間違っていますか?

敬具、

モーリス

4

2 に答える 2

3

js 変数をデータベースに移動するだけの場合はupdatescore.php、フォームを使用する必要はまったくありません。AJAX でそれを行うことができます。

  var scoreData = {
       time : time,
       rank : rank[0],
       byline : rank[1]
  };
  $.post('updatescore.php', scoreData); //done!
于 2012-08-06T22:09:52.940 に答える
2

値を設定するval()代わりに使用しますtext()

于 2012-08-06T22:05:47.217 に答える