簡體   English   中英

從 JavaScript 與 AJAX 和 JSON 發送數據到服務器並從服務器檢索數據

[英]Send data from JavaScript with AJAX and JSON to the server and retrieve data from the server

我是 AJAX 和 JSON 的新手。 我從這個鏈接中找到了一些代碼並對其進行了修改: 將 json object 從 javascript 發送到 ZE1BFD762321E409CEE4AC0B6E849

我想要的是:我在 JavaScript 中有一些動態數據(變量,arrays 等)(用戶可以在運行時更改此值)。 現在我想將此數據發送到服務器並將其保存在 PHP 文件中。 我還想從服務器檢索更新的數據。 簡而言之,我想從客戶端保存到服務器並從服務器加載到客戶端。

我在“alert(jsondata.num);”行的 Load() 中出現錯誤:無法讀取 nullat XMLHttpRequest.xhr.onreadystatechange 的屬性“num”

PHP:

<?php
  header('Content-type: application/json');
  $json = file_get_contents('php://input');
  $json_decode = json_decode($json, true); 
  $json_encode = json_encode($json_decode);
  echo $json_encode;
?>

JavaScript:

function Save() {
  var jsondata;
  var num = {"num":Math.floor(Math.random()*100)};
  var data = JSON.stringify(num);

  var xhr = new XMLHttpRequest();
  xhr.open("POST", "demo.php", !0);
  xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  xhr.send(data);
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      // in case we reply back from server
      jsondata = JSON.parse(xhr.responseText);
      console.log(jsondata);
      alert(jsondata.num);
    }
  }
}
function Load() {
  var jsondata;

  var xhr = new XMLHttpRequest();
  xhr.open("GET", "demo.php", !0);
  xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  xhr.send();
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      // in case we reply back from server
      jsondata = JSON.parse(xhr.responseText);
      alert(jsondata.num);
    }
  }
}

為了清楚起見,我為您創建了這個。 它允許用戶發送 email 並命名並返回 json 數據給客戶端。 有了這個,你現在有了基礎..

<!doctype html>
<html>
    <head>
        <script 
  src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> 
  type="text/javascript" charset="utf-8"></script>

<script>
$(document).ready(function(){

    // submit button click
    $("#submit").click(function(){


        var name = $("#name").val();
        var email = $("#email").val();

  alert(name);

        if(name != ''){
            $.ajax({
                url: 'demo.php',
                type: 'post',
                data: {name:name,email:email},
                dataType: 'JSON',
                success: function(response){
  alert(response.name);



           // selecting values from response Object
                    var name = response.name;
                    var email = response.email;

     var dt = "<div>";
     dt += "<b>Email:</b>"+email+"<br>";
     dt += "<b>name:</b>"+name+"<br>";

                }
            });
        }
    });

});

</script>

    </head>
    <body>
        <div class="container">
            <div class="content">
                <h1>Enter Details</h1>
                <div>
                    <input type="text" id="name" name="name" placeholder="Name">
                </div>

                <div>
                    <input type="email" id="email" name="email" placeholder="email">
                </div>

                <div>
                    <input type="button" value="Submit" id="submit">
                </div>
            </div>



            <div id="Result">

            </div>
        </div>
    </body>
</html>

演示.php

<?php

$name = $_POST['name'];
$email = $_POST['email'];

// insert into database 

//response
$return_arr = array('name'=>$name,'email'=>$email);

echo json_encode($return_arr);

暫無
暫無

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

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