我想要实现的目标有点复杂,所以我会尽量解释。
Here is a working fiddle只是为了让您了解我想要展示的内容 当你点击DIV时,它会切换另一个DIV里面的信息(从我控制的数据库表中取出),这就是我要从电话显示“TIME”的地方表!
提前谢谢,如果我需要澄清一些事情,请告诉我,因为我真的被卡住了!
我有以下两个表和服务器:
connection server 1: mario2001
table: overlays
+---------------------------------------------------------------------------------------------+
| q_id | button | query |
+---------------------------------------------------------------------------------------------+
| 12 | AHT_Stats | CALL telephony.sp_get_spec_stat_all_agents( '2014-11-02', '2014-11-02' ) |
+---------------------------------------------------------------------------------------------+
我只对下面的服务器/表格具有READ权限
connection server 2: mario2003
table: telephony
+-------------+
| memo | time |
+-------------+
| JOE | 410 |
+-------------+
问题:
我想通过单击带有onClick事件的HTML按钮来了解是否可能(如果是这样?)在表覆盖中执行查询。现在,我知道我需要JQuery,AJAX和/或JS。我不是很擅长他们,这就是我需要帮助的地方。我的“覆盖”表中的STORED PROCEDURE是从“电话”表中获得的结果。
map.php(此处显示的所有内容)获取我的StoredProcedure字段值并将其存储为变量:
//Overlay table
$query_overlay_sql = "SELECT query FROM overlays";
$query_overlay_result = mysqli_query($dbh1,$query_overlay_sql);
//get the query 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'];
}
HTML / JQuery的:
<!-- show the results in this DIV below-->
<div id="resultdiv" class="resultdiv" style="display:none">Time: <? /* get the time value*/ ?></div>
<script type="text/javascript">
$(document).ready(function() {
$('#aht').click(function(){
var sp_value_to_send = <?php echo $sp_value; ?>;
$.ajax({
type:"POST",
url : "show_aht.php",
data: { sp_value: sp_value_to_send }, // pass data here
success : function(data){
$('#resultdiv').show();
$('#resultdiv').html(data);
}//end success
})//end ajax
});//end click
});//end rdy
</script>
show_aht.php:
<?php
include 'db_conn_retca2003.php';
/****************************************************
Execute the query_value when AHT button is clicked
/****************************************************/
$dbh2_result = mysqli_query($dbh2, $query_value)
or die("Query fail: " . mysqli_error());
//loop the result set
while ($row2 = mysqli_fetch_assoc($dbh2_result)){
$memo = $row2['memo_code'];
$time = $row2['avg_handle_time'];
echo '<p>memo: '. $memo . ' time:' . $time . '</p><br>';
}
?>
答案 0 :(得分:1)
您需要添加配置项以传递数据 -
<script type="text/javascript">
$(document).ready(function() {
$('#aht').click(function(){
var sp_value_to_send = <?php echo $foo; ?>;
$.ajax({
type:"POST",
url : "show_aht.php",
data: { sp_value: sp_value_to_send }, // pass data here
success : function(data){
$('#resultdiv').show();
$('#resultdiv').html(data);
}
});
});
});
</script>
该值现在可以在show_aht.php中的$_POST['sp_value']
变量中找到。您可以像使用任何其他变量一样使用它。
一旦您的AJAX通话设置正确,您就可以在浏览器的控制台中观看请求/响应。这样,您就可以验证AJAX请求是否正在发送正确的数据,然后您从请求中收回正确的数据。
其他注意事项:我将您的代码放在文档就绪处理程序中,因为我不确定您的代码放在页面的总体布局中的哪个位置。您应该养成使用文档就绪处理程序的习惯,即使您将jQuery代码放在结束</body>
标记之前。
您将在success : function(data)
功能中接收数据。返回的信息将显示在data
中,可以在您的页面中用于多种用途,包括与#resultdiv