如何使用 AJAX/JQuery 调用多个 PHP 脚本?
Posted
技术标签:
【中文标题】如何使用 AJAX/JQuery 调用多个 PHP 脚本?【英文标题】:How can I call multiple PHP scripts with AJAX/JQuery? 【发布时间】:2014-12-03 08:11:24 【问题描述】:我是 AJAX 和 JQuery 的新手。我正在尝试使用它来调用两个 php 脚本。我在网上找到了一些例子,但只是为了调用函数。我只是想调用脚本,以便它将所有内容加载到我的主 PHP 文件中,然后将结果显示在 屏幕上,而无需刷新页面。
这是小提琴示例,如果我将所有 PHP 脚本放在一个文件中,它就可以工作:http://jsfiddle.net/vw4w3ay5/
提前致谢,非常感谢您的帮助!
main_php 文件(我想在其中调用我的其他 PHP 脚本):
<div id="map_size" align="center">
<script type="text/javascript">
/*I WANT TO CALL THE TWO SCRIPTS BEFORE EXECUTE THE FUNCTION BELOW*/
$(".desk_box").click( function()
$(".station_info").hide(); // to hide all the others.
$("#station_info"+ $(this).attr('data') ).show();
);
</script>
display_desk.php(我要调用的脚本):
<?php
include 'db_conn.php';
//query to get X,Y coordinates from DB for the DESKS
$desk_coord_sql = "SELECT coordinate_id, x_coord, y_coord FROM coordinates";
$desk_coord_result = mysqli_query($conn,$desk_coord_sql);
//see if query is good
if($desk_coord_result === false)
die(mysqli_error());
//didsplay Desk stations in the map
while($row = mysqli_fetch_assoc($desk_coord_result))
//naming X,Y values
$id = $row['coordinate_id'];
$x_pos = $row['x_coord'];
$y_pos = $row['y_coord'];
//draw a box with a DIV at its X,Y coord
echo "<div class='desk_box' data='".$id."' style='position:absolute;left:".$x_pos."px;top:".$y_pos."px;'>id:".$id."</div>";
//end while loop for desk_coord_result
mysqli_close($conn); // <-- DO I NEED TO INCLUDE IT HERE OR IN MY db_conn.php SINCE IM INCLUDING IT AT THE TOP?
?>
display_stationinfo.php(我要调用的第二个脚本):
<?php
include 'db_conn.php';
//query to show workstation/desks information from DB for the DESKS
$station_sql = "SELECT coordinate_id, x_coord, y_coord, section_name FROM coordinates";
$station_result = mysqli_query($conn,$station_sql);
//see if query is good
if($station_result === false)
die(mysqli_error());
//Display workstations information in a hidden DIV that is toggled
while($row = mysqli_fetch_assoc($station_result))
//naming values
$id = $row['coordinate_id'];
$x_pos = $row['x_coord'];
$y_pos = $row['y_coord'];
$sec_name = $row['section_name'];
//display DIV with the content inside
echo "<div class='station_info' id='station_info".$id."' style='position:absolute;left:".$x_pos."px;top:".$y_pos."px;'>Hello the id is:".$id."</br>Section:".$sec_name."</br></div>";
//end while loop for station_result
mysqli_close($conn); // <-- DO I NEED TO INCLUDE IT HERE OR IN MY db_conn.php SINCE IM INCLUDING IT AT THE TOP?
?>
【问题讨论】:
如果你用嵌套的 ajax 来做呢? 我尝试过:$(document).ready(function() $.ajax( post: "GET", url: "display_desk.php" ).done(function(data) alert(data); ).fail(function(jqXHR, textStatus, errorThrown) alert(textStatus); ); 但不起作用 【参考方案1】:怎么样? :
<div id="map_size" align="center">
<?php
echo "<script>";
include "display_desk.php";
include "display_stationinfo.php";
echo "</script>";
?>
<script type="text/javascript">
/*I WANT TO CALL THE TWO SCRIPTS BEFORE EXECUTE THE FUNCTION BELOW*/
$(".desk_box").click( function()
$(".station_info").hide(); // to hide all the others.
$("#station_info"+ $(this).attr('data') ).show();
);
</script>
确保添加 $(document).ready(function()
);
/编辑/ 哼你想用 Ajax 。你试过了吗:
$.post("yourURL.php",function(html)
/*here what you want to do*/
/*return of your script in html*/
);
【讨论】:
与在 PHP 中使用它有什么区别,而不是把它放在我的 JQuery 函数所在的位置?我的 display_stationinfo.php 将包含稍后要实时显示的数据。我不只是想在我的主 php 文件中“包含那些脚本” 哼你想用 Ajax 。您是否尝试过: $.post("yourURL.php",function(html) /*这里是您想要做的*/ /*在 html 中返回您的脚本*/ ); “你想做什么”是什么意思?我只想调用脚本,它会自行执行 SQL 查询并将其显示在主 php 文件中。 我不明白你想做什么......为什么 $.post 不起作用?以上是关于如何使用 AJAX/JQuery 调用多个 PHP 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
AJAX(jQuery)到 PHP,“Access-Control-Allow-Origin”标头包含多个值“<domain>,*”,但只允许一个 [重复]
使用 ajax jquery php 和 mysql 制作账单