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

如果您只是想通过updatescore.php您根本不需要使用表单将 js 变量移动到数据库中!您可以使用 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 回答