我有三个php文件。
main.php - to use stored Ajax response.
filter.php - to send Ajax request and get response
insert.php - to store Ajax response for using in main.php
执行所有这些操作的主要目的是使用PHP代码使用客户端值,因为服务器和客户端不能互相交换变量值。
响应应存储在main.php
中的php变量中。
main.php:
?>
<script>
$.ajax({
type: "POST",
url: "filter.php",
data: { id1: name, id2:"employees"},
success:function(response) {
var res = response;
$.ajax({
type: "POST",
url: "insert.php",
data: { id1: res },
success:function(data){
alert(data);
}
});
});
<script>
<?php
$ajaxResponse = ???? <need to get value of data over here>
filter.php:
// Return employee names
if ($_POST['id1'] == "name" && $_POST['id2'] == "employees") {
$conn = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT " .$_POST['id1']. " FROM 1_employees";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_array($result)) {
$rows[] = $row['name'];
}
}
echo json_encode($rows);
mysqli_close($conn);
exit (0);
}
insert.php:
if ($_POST) {
if ($_POST['id1'] !== "") {
echo $_POST['id1'];
}
}
那么如何在$ajaxResponse = ????
的main.php中获取ajax响应值?
答案 0 :(得分:1)
你不能那样使用它。
为什么:
javascript / jQuery是一种脚本语言,当DOM完全加载并且元素可用于制作选择器时,它在浏览器中运行。
虽然php是在页面加载之前在服务器上运行的服务器端语言。
因此,简而言之,您无法为php变量分配ajax响应。
你可以做一件事来隐藏输入并将响应值放入其中,你可以获得该值来使用它。
success:function(data){
alert(data);
$('#hiddenInputId').val(data); // set the response data to the hidden input and use it.
}
答案 1 :(得分:1)
您可以创建要显示响应内容的div
在您的情况下,它位于<script>
代码
使用innerHTML显示内容
使用此代码
<script>
$.ajax({
type: "POST",
url: "filter.php",
data: { id1: name, id2:"employees"},
success:function(response) {
var res = response;
$.ajax({
type: "POST",
url: "insert.php",
data: { id1: res },
success:function(data){
$("#responseContent").html(data);
}
});
});
<script>
<div id="responseContent"></div>
让我知道它是否有用
答案 2 :(得分:1)
以下是答案:
使用以下方式在main.php中获取名称:
-------- filter.php ----------
session_start(); //at the top
$_SESSION['names'] = json_encode($rows);
-------- main.php ----------
session_start();
$issued_to = explode(",", $names);
session_unset();
session_destroy();
答案 3 :(得分:0)
答案是简单地使用Javascript将来自Ajax的响应存储到一个隐藏变量中,并利用它进行进一步的操作。那解决了我的查询,我相信很多人实际上也将需要它!