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

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

如何在 Javascript 中接收 PHP 響應(yīng)

如何在 Javascript 中接收 PHP 響應(yīng)

PHP
慕絲7291255 2023-03-04 18:04:17
在過去的一天里,我一直堅持這一點,感覺就像我錯過了什么。我的任務(wù)是:創(chuàng)建一個 php 文件 register.php,允許用戶輸入他們的姓名、姓氏、用戶名和電子郵件(通過 HTML 表單),然后對這些數(shù)據(jù)進行一些服務(wù)器端驗證。該文件還可以用作 html 表單,用戶可以在其中輸入數(shù)據(jù)。對于用戶名輸入字段,我必須在每次擊鍵時檢查我的數(shù)據(jù)庫中是否已存在具有該用戶名的用戶。這必須使用 Javascript 通過使用 Ajax 向 register.php 發(fā)送請求來完成。我知道如何運行必要的查詢來根據(jù)某個用戶名搜索我的數(shù)據(jù)庫。那部分不是問題。我無法上班的是使用 Javascript/Ajax 向 register.php 發(fā)送請求讓 register.php 根據(jù)輸入的用戶名運行查詢,因為我不知道如何接收請求獲取 register.php 以“返回”響應(yīng)而不將其寫入 DOM到目前為止我已經(jīng)嘗試過:let username= document.getElementById('username');username.addEventListener('input', validateUsername);function validateUsername(){    var xhttp = new XMLHttpRequest();    xhttp.onreadystatechange = function() {        if (this.readyState == 4 && this.status == 200) {            // Typical action to be performed when the document is ready:            console.log(xhttp.responseText);        }    };    xhttp.open("POST", "../obrasci/registracija.php", true);    xhttp.send("username="+username.value);}這部分有效,我正在取回整個 HTML 文檔。我知道是因為整個結(jié)構(gòu)都被打印到控制臺中了。現(xiàn)在這是我無法開始工作的部分。到目前為止,在 PHP 中我已經(jīng)知道了,但我無法讓腳本對用戶名執(zhí)行任何操作。if( isset($_POST['username'])  ){    json_encode($_POST['username']);}編輯:我忘了補充一點,該站點需要動態(tài)處理使用 ajax 發(fā)送的數(shù)據(jù)(如果該用戶名已被占用,則將輸入標記為無效,直到用戶選擇未被占用的用戶名為止)。這可能是我使用它的方式的問題,因為 PHP 中的 if 僅在第一次加載時進行測試?任何幫助表示贊賞。
查看完整描述

1 回答

?
至尊寶的傳說

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

首先,您可以檢查請求是否作為 POST 請求發(fā)送(在瀏覽器中打開 register.php 將是 GET 請求)。


您可以通過這樣的方式包裝您的表單處理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

  // check if username exists

  if (isset($_POST['username'])) {

    echo 'username: ' . $_POST['username'];

    die;

  } else {

    echo 'no username';

    die;

  }

}

相應(yīng)地更改代碼,用于echo json_encode($data)以 JSON 格式返回數(shù)據(jù)。


在您的請求中,您可能需要添加正確的標頭來告訴 PHP 如何解釋隨請求一起發(fā)送的正文。


function validateUsername(){

    var xhttp = new XMLHttpRequest();

    xhttp.onreadystatechange = function() {

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

            // Typical action to be performed when the document is ready:

            console.log(xhttp.responseText);

        }

    };

    // add this line 

    xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    xhttp.open("POST", "../obrasci/registracija.php", true);

    xhttp.send("username="+username.value);

}

另外,請確保您的命名正確。在你的代碼示例中,你將你的輸入稱為變量username,但是你將事件偵聽器添加到kor_ime,我不知道你是否將某些內(nèi)容更新為英語并忘記了它的其他部分以解決這個問題或者這是否是你的實際代碼


let username= document.getElementById('username');

username.addEventListener('input', validateUsername); // here change kor_ime to username and update the function name, you can omit the extra function wrapper



查看完整回答
反對 回復(fù) 2023-03-04
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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