- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理位于不同服务器中的两个不同表。我正在尝试比较表“workstation_userlogged”中的 USERNAME 字段值和表“电话”中的 MEMO_CODE 字段值(它们是用户名)。正如您将在下面的代码中看到的那样,我使用存储过程获得了“memo_code”值。
如何保存从两个表返回的所有结果,遍历它们以匹配所有用户名,然后保存数据以便可以使用 AJAX 返回?此脚本仅在单击 AJAX 请求按钮时运行。所以,我需要把数据带回来并像这样显示:
如果匹配两个表中的用户名:
user: JOE time: 300
如果没有匹配的用户名:
user: MARC time: N/A
“workstation_userlogged”中的一些用户名在另一个表中不存在,反之亦然。
我知道它与处理数组有关,但我已经被困了几个小时,无法完成它。我需要澄清一些事情,请询问。
提前致谢!
map.php HTML/AJAX:我该如何解决这个问题?
<!-- Show the results here-->
<div id="resultdiv" class="resultdiv" style="display:none"> </div>
<div id="aht"><!--aht button-->
<button id="aht_button">AHT</button>
</div><!--aht button-->
<script type="text/javascript">
$(document).ready(function() {
$('#aht').click(function(){
$.ajax({
type:"POST",
url : "show_aht.php",
data: { }, // pass data here
success : function(data){
}//end success
});//end ajax
});//end click
});//end rdy
show_aht.php:发送AJAX请求时
<?php
存储过程只是为了展示我做了什么:
//get the StoredProcedure from the "query" field in the overlay table
//and store it as a variable for later use for the AHT button
if($row = mysqli_fetch_assoc($query_overlay_result)){
$sp_value = $row['query'];
}
表 workstation_userlogged:此 WHILE 循环的结果需要与下面的 StoredProcedure 的结果相匹配
//the displayed users values will have to be matched with memo_code
$user_data = array();
while($row = mysqli_fetch_assoc($get_user_result)){
$user_data[] = "user: " .$row['username'];
}
这是我尝试比较两个用户名并取回数据的地方到 map.php 但没有运气。
/****************************************************
Execute the sp_value query when AHT button is clicked
/****************************************************/
//loop the result set
$memo_data = array();
while ($row = mysqli_fetch_assoc($dbh2_result)){
$memo_data[] = $row['memo_code'] . " " . $row['avg_handle_time'];
}
/*THIS ISNT WORKING*/
foreach($memo_data as $v){
foreach($user_data as $m){
if($v['memo_code'] == $m['username'])
echo " user: " .$m['username']. " time: " . $v['avg_handle_time'] . "<br>";
}
}
?>
最佳答案
所以第一个错误是你使用了json_encode($user_data)
json encode 是一个将数组转换为javascript 对象表示法格式的字符串的函数。它用于推测类似 echo json_encode($obj);
并在 javascript obj = JSON.parse(json);
既然你有 2 个数组,你需要做的就是遍历这两个数组以找到匹配的名称:我不确定 memo_code
是什么,但它必须是用户名。
您的查询不正确,请将其更改为类似内容。
$result = $sql->query("SELECT username FROM `$table1`;");
for ($user_data= array (); $row = $result->fetch_assoc(); $set[] = $row);
$result2 = $sql->query("SELECT memo_code FROM `$table2`;");
for ($memo_data= array (); $row = $result2->fetch_assoc(); $set[] = $row);
现在你终于可以正确使用循环了:
foreach($memo_data as $v){
foreach($user_data as $m){
if($v['memo_code'] == $m['username '])
echo " user: " .$m['username ']. " time: " . $v['avg_handle_time'] . "<br>";
}
}
关于javascript - PHP:如何比较/保存来自不同 WHILE 循环的不同数组并将数据发送到 AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26759490/
我是一名优秀的程序员,十分优秀!