Py学习  »  Jquery

使用jquery$.ajax方法显示包含mysql表数据的json[closed]

aspirant candidate • 4 年前 • 172 次点击  

我编写了以下php代码,从mysql数据库中检索多行,然后将其转换为json。这个php文件名为 sql_json.php语言 并使用方法$.ajax通过jquery调用。jquery代码在文件中 jquery_fetch.js查询 是的。最后我想把它显示在html文件中 json_search_user.html 是的。从mysql检索工作正常。但是jquery代码不起作用,因此无法显示编码的json。

php代码:(sql_json.php)

   <?php

require_once($_SERVER['DOCUMENT_ROOT'].'/php_revision/dbase.php'); //dbase.php contains dtabase parameters like servername, username,password etc.

$conn=mysqli_connect($server,$username,$password,$db_name) or die('Connection to database failed');

if($conn){

$sql="SELECT FNAME,LNAME,DEPT,MOBILE_NO FROM USER WHERE ROLE=?" ;

$stmt=mysqli_prepare($conn,$sql);

mysqli_stmt_bind_param($stmt,"s",$role);

$role=$_POST['role'];

if(mysqli_stmt_execute($stmt)){

    $result=mysqli_stmt_get_result($stmt);

    $json= array();

    $data_array=array();

    while($row=mysqli_fetch_assoc($result)){

        $data_array['FNAME']=$row['FNAME'];
        $data_array['LNAME']=$row['LNAME'];
        $data_array['DEPT']=$row['DEPT'];
        $data_array['MOBILE_NO']=$row['MOBILE_NO'];

        array_push($json,$data_array); 

    }
    echo  json_encode($json);
}

mysqli_stmt_close($stmt);
}   
else{

 echo json_encode({"Status" : "No results found"});
 }
 ?>

jquery代码:(jquery_fetch.js)

  $(document).ready(function() {


  $('#myForm').on('submit',function(e){

  var role= $('#role').val();

  $.ajax({

      url:"sql_json.php",

      type: "POST",

      dataType: "JSON",

      data:{role : role} ,

      success: function(data){

          var response= JSON.parse(data);

          var genHtml='<table><tbody>';

          for(var i=0;i<response.length;i++)
          {

             genHtml += '<tr><td>' + response[i].FNAME + '' + response[i].LNAME + '</td><td>' + response[i].DEPT + '</td><td>' + response[i].MOBILE_NO + '</td></tr>';

          }

          genHtml += '</tbody></table>';

          $('#search_result').html(genHtml); 

      }

    });

    });   

    });

HTML文件(json_search_user.html)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search User </title>

<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256- FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script type="text/javascript" src="jquery_fetch.js"></script>
</head>
<body>
<form method="POST" action="sql_json.php" id="myForm">
<label for="role">Select Role :</label>
<select id="role" name="role" required>
<option disabled selected>Select</option>
<option value="Author">Author</option>
<option value="Publisher">Publisher</option>
<option value="Admin">Admin</option>
</select>

<input type="submit" value="Submit">
<input type="reset" value="Reset">

<div id="search_result"></div>
</form>
</body>
</html>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46378
 
172 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Mohammed El Banyaoui
Reply   •   1 楼
Mohammed El Banyaoui    5 年前

您的表单中有一个操作,当您单击Submit时,它将打开文件“sql json.php”,这样您的JS代码就不会将HTML呈现到页面上。您需要防止表单提交的默认行为。通过在javascript函数中添加e.preventDefault()。