Ajax - 发送和接收

时间:2017-03-25 21:16:28

标签: php jquery ajax

我有2个文件,A .js和.php。 .php连接到MySQL DB,.js是系统的前端。 我正在尝试设置它,因此它向ajax发送一个哈希键,从数据库返回相关人员的正确数据。 到目前为止它确实有效,因为它将URL从URL发送到PHP文件并返回控制台日志中的数据。

//AJAX Function
//Grabs Varibles from PHP

var hash = window.location.hash.substr(1);

$(function() {
    $('.hashfield').text(hash)
});

  $.ajax({
    type: "POST",
    async: false,
    cache: false,
    url: "SelectFromSQL.php",
    //Sending URL password
    data:{ hash: hash, WorkingHash : "yes" },
    success: function(data){
      //Return of AJAX Data
        console.log(data);
    },
    error:function() {   
        console.log("FAIL");    
    }
  })

这是在发送哈希<。p>的.js文件中

<?php
if(isset($_REQUEST['WorkingHash'])){
     $hash = $_POST['hash'];

    function IDHASH($hash){
       echo $hash;
    }
    IDHASH($hash);
}

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT ID, CustomerName, ContactName, Address, City, PostalCode, Country FROM customers WHERE ID=$hash";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo $row["ID"] . "<br>"; 
        echo $row["CustomerName"] . "<br>"; 
        echo $row["ContactName"] . "<br>";
        echo $row["Address"] . "<br>";
        echo $row["City"] . "<br>";
        echo $row["PostalCode"] . "<br>";
        echo $row["Country"] . "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
?>

这是.php文件。我需要从数据库返回与正确客户ID相关的数据。 从while循环回显的所有数据都需要它在js格式内可变地拥有

我的目标是从数据库中检索每个条目

2 个答案:

答案 0 :(得分:0)

if ($result->num_rows > 0) {
// output data of each row
  while($row = $result->fetch_assoc()) {
    echo $row["ID"] . "<br>"; 
    echo $row["CustomerName"] . "<br>"; 
    echo $row["ContactName"] . "<br>";
    echo $row["Address"] . "<br>";
    echo $row["City"] . "<br>";
    echo $row["PostalCode"] . "<br>";
    echo $row["Country"] . "<br>";
 }
 }

instead use

if ($result->num_rows > 0) {
  // output data of each row
 $row = $result->fetch_assoc(); 
 print_r(json_encode($row));
}

和js    javacript

 $.ajax({
type: "POST",
async: false,
cache: false,
url: "SelectFromSQL.php",
//Sending URL password
data:{ hash: hash, WorkingHash : "yes" },
success: function(data){
  //Return of AJAX Data
    data = JSON.parse(data);
    console.log(data);
//YOU CAN USE data.ID , data.CustomerName and so on
   },
   error:function() {   
     console.log("FAIL");    
    }
  })

答案 1 :(得分:0)

这样的事情怎么样:

修改

代替返回数据回显,如下所示:

if ($result->num_rows > 0) {
   // echo the data instead of return
   echo json_encode($result->fetch_assoc());
}

要访问成功函数中可以使用的对象属性,请执行以下操作:

success: function(data){
    // parse your data first
       data = JSON.parse(data);

      //Return of AJAX Data
        console.log(data.CustomerName);
        console.log(data.ContactName);
  // you can assign them to a variables if you want 
  var customerName =  data.CustomerName;
  var ccontactName =  data.CustomerName;       
}