簡體   English   中英

Ajaxcall不發送輸入(MongoDB數據庫)

[英]Ajaxcall doesn't send inputs (MongoDB Database)

我目前正在使用Phaser.js進行項目,並且在處理Highscore時遇到問題。 當游戲進入最后一個名為“結束”的狀態時,它將打開一個Bootstrap Modal對話框,其中包含獲得的分數和一個輸入,您可以在其中輸入您的名字。 當我點擊“發送”時,應該將兩個輸入的值都放入ajaxcall中並將其發送到“ /”。 但是輸入最終是空的,一個console.log(input1 +“和” + input2); 除了“與”,什么都沒有帶出來。 我不知道問題可能出在哪里,因為我沒有收到任何錯誤。 任何幫助表示贊賞。

index.ejs:

<div class="col-md-12" id="popup">
    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
          </div>
          <div class="modal-body">
            <label for="score">Your Score:</label>
            <input value="" class="form-control" id="score"><br>
            <label for="name">Your Name:</label>
            <input value="" class="form-control" id="name"  placeholder="Choose a name for the leaderboards...">
          </div>
          <div class="modal-footer">
            <button type="button" id="send" class="btn btn-success">Send</button>
            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
          </div>
        </div>

      </div>
    </div>
  </div>

ajaxcalls.js

var input1 = $('#name').val();
var input2 = $('#score').val();



$('#send').click(function(){
    console.log(input1 + 'x' + input2);
    $.ajax({
        method: "POST",
        url: "/",
        data: {
            Name: input1,
            HScore: input2
        },
        success: function(data){
            console.log('success');
            $('#myModal').modal('hide');
        }
    });
});

index.js

router.post('/', function (req, res) {
  var Name = req.body.Name;
  var HScore = req.body.HScore;

  mongoose.model('hs').create(
      {
        player: Name,
        score: HScore
      },
      function (err,player) {
        if(err){
          res.send('Errortext!');
        }
        console.log('POST creating new Player: ' + player);
        res.redirect('/');
      });
});

mongo.js

var mongoose = require('mongoose');

var highScore = new mongoose.Schema({
    player: String,
    score: Number
});

mongoose.model('hs', highScore);

您只需要在click監聽器中讀取值

$('#send').click(function(){
    var input1 = $('#name').val();
    var input2 = $('#score').val();

    console.log(input1 + 'x' + input2);
    $.ajax({
        method: "POST",
        url: "/",
        data: {
            Name: input1,
            HScore: input2
        },
        success: function(data){
            console.log('success');
            $('#myModal').modal('hide');
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM