gpt4 book ai didi

javascript - PHP:如何比较/保存来自不同 WHILE 循环的不同数组并将数据发送到 AJAX?

转载 作者:行者123 更新时间:2023-11-29 03:33:42 24 4
gpt4 key购买 nike

我正在处理位于不同服务器中的两个不同表。我正在尝试比较表“workstation_userlogged”中的 USERNAME 字段值和表“电话”中的 MEMO_CODE 字段值(它们是用户名)。正如您将在下面的代码中看到的那样,我使用存储过程获得了“memo_code”值。

如何保存从两个表返回的所有结果,遍历它们以匹配所有用户名,然后保存数据以便可以使用 AJAX 返回?此脚本仅在单击 AJAX 请求按钮时运行。所以,我需要把数据带回来并像这样显示:

如果匹配两个表中的用户名:

user: JOE  time: 300

如果没有匹配的用户名:

user: MARC  time: N/A

“workstation_userlogged”中的一些用户名在另一个表中不存在,反之亦然。

我知道它与处理数组有关,但我已经被困了几个小时,无法完成它。我需要澄清一些事情,请询问。

提前致谢!

ma​​p.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/

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