第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓網(wǎng)站等待我的 ajax 文件發(fā)回一個值而不是打印 undefined?

如何讓網(wǎng)站等待我的 ajax 文件發(fā)回一個值而不是打印 undefined?

PHP
開心每一天1111 2022-10-09 17:17:02
所以我有這個函數(shù),我希望程序等待它返回一個值而不是給出未定義的值。function savedNumberOfLessonInDay(dayID){     var xhttp = new XMLHttpRequest();      xhttp.onreadystatechange = function() {          if (this.readyState == 4 && this.status == 200) {            document.getElementById('demo4').innerHTML = this.responseText; //Returns the right number            return this.responseText;        }      };      var PageToSendTo = "AJAX/countLessonInDay.php?";    var MyVariable = dayID;    var VariablePlaceholder = "GETDayID=";    var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;      xhttp.open("GET", UrlToSend, false);      xhttp.send();   }<?phprequire '../notWebsite/dbh.php';session_start();$dayID = (int)$_GET['GETDayID'];$sqlCount = "SELECT COUNT(lessonID) FROM daylesson WHERE dayID = ?";  $stmt = mysqli_stmt_init($conn);  if(!mysqli_stmt_prepare($stmt, $sqlCount)) {   header("Location: ../GymnasieArbeteHemsida.php?error=countError");    exit();  }  else { mysqli_stmt_bind_param($stmt, "i", $dayID);//Puts in variable in question   mysqli_stmt_execute($stmt);//Executes the questionmysqli_stmt_bind_result($stmt, $result);//Binds the reuslt of the question to the variable $resultif(mysqli_stmt_fetch($stmt)){//If the result of the question can be recieved  echo $result;//Send the result to the website}        exit();  }  mysqli_stmt_close($stmt);  mysqli_close($conn); ?>  document.getElementById('demo').innerHTML = 'test' + savedNumberOfLessonInDay(number);此代碼將 testundefined 返回給 demo,但將 16(這是我要的數(shù)字)返回給 demo4。如何讓它返回 test16 而不是 testundefined?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

你不能打電話savedNumberOfLessonInDay(number)來獲取號碼。您正在嘗試使用 執(zhí)行此操作return this.responseText;,但在對服務器的請求完成之前不會觸發(fā)。


你可以使用 Promises 來解決這個問題。


function savedNumberOfLessonInDay(dayID){

     return new Promise((resolve) => {

     var xhttp = new XMLHttpRequest();

      xhttp.onreadystatechange = function() {

          if (this.readyState == 4 && this.status == 200) {

            document.getElementById('demo4').innerHTML = this.responseText; //Returns the right number

            resolve(this.responseText);

        }

      };

      var PageToSendTo = "AJAX/countLessonInDay.php?";

    var MyVariable = dayID;

    var VariablePlaceholder = "GETDayID=";

    var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;

      xhttp.open("GET", UrlToSend, false);

      xhttp.send();

     });

   }

并用await它來稱呼它:


  document.getElementById('demo').innerHTML = 'test' + await savedNumberOfLessonInDay(number);

或者,如果由于某種原因您不能使用await:


  savedNumberOfLessonInDay(number).then((response) => {

      document.getElementById('demo').innerHTML = 'test' + response;

  });


查看完整回答
反對 回復 2022-10-09
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

嘗試使用 async/await 這里是如何使用它。https://javascript.info/async-await


查看完整回答
反對 回復 2022-10-09
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

函數(shù) savedNumberOfLessonInDay() 不會等待 ajax 完成。所以需要在回調函數(shù)xhttp.onreadystatechange中設置demo的html。


在不改變你的實現(xiàn)太多的情況下,你可以簡單地修改你的代碼:


function savedNumberOfLessonInDay(dayID){

 var xhttp = new XMLHttpRequest();

  xhttp.onreadystatechange = function() {

      if (this.readyState == 4 && this.status == 200) {

        document.getElementById('demo4').innerHTML = this.responseText; //Returns the right number

        document.getElementById('demo').innerHTML = 'test' + this.responseText;

    }

  };

  var PageToSendTo = "AJAX/countLessonInDay.php?";

var MyVariable = dayID;

var VariablePlaceholder = "GETDayID=";

var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;

  xhttp.open("GET", UrlToSend, false);

  xhttp.send();

}


然后只需調用該函數(shù)而不是嘗試設置


savedNumberOfLessonInDay(number);



查看完整回答
反對 回復 2022-10-09
  • 3 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號