gpt4 book ai didi

javascript - jquery 显示从 php 返回的多个 json 对象

转载 作者:行者123 更新时间:2023-11-30 05:32:07 26 4
gpt4 key购买 nike

我知道这个问题有点幼稚,但我无法找到解决这个问题的正确方法...

我正在使用 jquery 和 ajax 调用网站中的用户搜索功能,php 返回 json 对象...

当我使用 php 文件搜索用户时,如果 json 返回的只是一个数组,jquery 会将其打印在屏幕上,但是当返回多个结果时,我不知道将它们打印出来....

这是从 php 返回的结果:

{"search":"10 
junaid
saleem
junaid@yahoo.com

"}{"search":"13
zzz
aaa
zzz@yahoo.com

"}

这是 jquery 网页:

<?php 
session_start();
require("secure_scripts/getusers.php");
require("secure_scripts/getdp.php");
require("secure_scripts/getusersinfo.php");
if(!isset($_SESSION['id'])){
header("location: index.php");
}else{
$zxcv_lgn = base64_encode($_SESSION['id']);
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome <?php echo getusers("first_name"); ?> | Addressbook.com</title>
<script src="jquery.js" type="text/javascript" ></script>
<link rel="stylesheet" href="style.css">
<script type="text/javascript">
$(document).ready(function(){
$("#search_button").click(function(){
$("#search_button").click(function(){ $("#console_loader").hide(); });
$("#console_loader").fadeIn("slow").html("<img src='images/ajax-loader.gif' id='ajax-loader' />");
var send = $("#search").val();
$.ajax({
type: "POST",
url: "secure_scripts/search_users.php",
data: {search: send},
dataType: "json",
success: function(msg){
$("#ajax-loader").fadeOut("slow", function(){
$("#console_loader img").remove();
$("#console_loader").fadeIn("slow").html(msg.search);
});
}
});

});
});

</script>

</head>
<body>
<div id="header">
<p><a href="index.php"><img src="images/header_logo.png" /><span>AddressBook™</span></a></p>


</div>

<div id="wrapper" align="center">

<div id="main">
<div id="content">
<div id="top_nav">
<div class="userinfo"><span class="user_title">Welcome <?php echo getusers("first_name")." ".getusers("last_name"); ?></span></div>
<div class="search">
<form onsubmit="return false" id="search_form">
<input type="text" name="search" class="search_box" id="search" placeholder="Type in to search...">
<input type="button" id="search_button" class="sea" name="search_submit"value="search">
</form>
</div>
</div>
<div id="left_nav">
<div id="dp"><img src="<?php echo getdp(); ?>"></div>
<div class="left_nav_links">Profile</div>
<div class="left_nav_links">Contacts</div>
<div class="left_nav_links">Settings</div>
<div class="left_nav_links">privacy</div>
<div class="left_nav_links">logout</div>
</div>
<div id="console">
<div id="console_top_nav">Your Contacts:</div>
<div id="console_content">
<div id="console_loader" style="display: none;"></div>
</div>
</div>
</div>
</div>

</div>

<div id="footer">
<div id="links"><ul><li><a href="index.php">Home</a></li><li><a href="about">About</a></li><li><a href="contact">Contact</a></li></ul></div>
<div id="copyrights">&copy; 2014 Addressbook.com All Rights Reserved</div>
</div>

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

每当从 php 返回一个对象时,例如:

{"search":"13 
zzz
aaa
zzz@yahoo.com

"}

它工作得很好,但不适用于多个 json 对象....

提前致谢!

最佳答案

您需要使用 jQuery 的 .each() 方法,如下所示:

$(document).ready(function(){
$("#search_button").click(function(){
$("#search_button").click(function(){ $("#console_loader").hide(); });
$("#console_loader").fadeIn("slow").html("<img src='images/ajax-loader.gif' id='ajax-loader' />");
var send = $("#search").val();
$.ajax({
type: "POST",
url: "secure_scripts/search_users.php",
data: {search: send},
dataType: "json",
success: function (msg) {
$.each(function (index, item) {
$("#ajax-loader").fadeOut("slow", function () {
$("#console_loader img").remove();
$("#console_loader").fadeIn("slow").html(item.search);
});
});
}
});
});
});

当收到你的 json 时,它很可能是一个对象数组

[{"search":"10 
junaid
saleem
junaid@yahoo.com

"}{"search":"13
zzz
aaa
zzz@yahoo.com
"}]

因此,通过使用 $.each() 循环遍历集合并返回值 (index, item) 您可以通过引用它来获取对象的值所以:

$("#console_loader").fadeIn("slow").html(item.search);

因为 json 返回一个 JavaScript 对象字面量。

关于javascript - jquery 显示从 php 返回的多个 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com