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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

PHP
慕絲7291255 2023-03-04 18:04:17
在過去的一天里,我一直堅(jiān)持這一點(diǎn),感覺就像我錯(cuò)過了什么。我的任務(wù)是:創(chuàng)建一個(gè) php 文件 register.php,允許用戶輸入他們的姓名、姓氏、用戶名和電子郵件(通過 HTML 表單),然后對這些數(shù)據(jù)進(jìn)行一些服務(wù)器端驗(yàn)證。該文件還可以用作 html 表單,用戶可以在其中輸入數(shù)據(jù)。對于用戶名輸入字段,我必須在每次擊鍵時(shí)檢查我的數(shù)據(jù)庫中是否已存在具有該用戶名的用戶。這必須使用 Javascript 通過使用 Ajax 向 register.php 發(fā)送請求來完成。我知道如何運(yùn)行必要的查詢來根據(jù)某個(gè)用戶名搜索我的數(shù)據(jù)庫。那部分不是問題。我無法上班的是使用 Javascript/Ajax 向 register.php 發(fā)送請求讓 register.php 根據(jù)輸入的用戶名運(yùn)行查詢,因?yàn)槲也恢廊绾谓邮照埱螳@取 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);}這部分有效,我正在取回整個(gè) HTML 文檔。我知道是因?yàn)檎麄€(gè)結(jié)構(gòu)都被打印到控制臺(tái)中了?,F(xiàn)在這是我無法開始工作的部分。到目前為止,在 PHP 中我已經(jīng)知道了,但我無法讓腳本對用戶名執(zhí)行任何操作。if( isset($_POST['username'])  ){    json_encode($_POST['username']);}編輯:我忘了補(bǔ)充一點(diǎn),該站點(diǎn)需要?jiǎng)討B(tài)處理使用 ajax 發(fā)送的數(shù)據(jù)(如果該用戶名已被占用,則將輸入標(biāo)記為無效,直到用戶選擇未被占用的用戶名為止)。這可能是我使用它的方式的問題,因?yàn)?PHP 中的 if 僅在第一次加載時(shí)進(jìn)行測試?任何幫助表示贊賞。
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

首先,您可以檢查請求是否作為 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 格式返回?cái)?shù)據(jù)。


在您的請求中,您可能需要添加正確的標(biāo)頭來告訴 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)容更新為英語并忘記了它的其他部分以解決這個(gè)問題或者這是否是你的實(shí)際代碼


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)注
  • 145 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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