javascript - AJAX 未从 PHP 脚本返回预期输出

标签 javascript php jquery ajax

我有index.php页面,我想在其中有两个“选择”元素。但是,我希望在从第一个元素中选择一个选项后显示第二个“选择”元素,并且第二个“选择”元素将始终包含基于第一个元素中选择的内容的不同选项。两个元素都从 MySql 数据库读取数据。因此,我创建了另一个名为 script.php 的页面,它将保留第二个元素,直到选择第一个元素为止,并使用 jquery .load() 它将加载它紧邻第一个元素。但我需要使用 AJAX 请求将值从第一个元素传输到 script.php,以便它可以返回具有特定选项的第二个元素。当我单独测试每个部分时,它工作正常(ajax请求将数据传递给script.php,当选择#first元素时,script.php正在加载,当我自己打开script.php页面时,它给出了#second)它应该是)。但是,当我按照下面的描述将所有这些放在一起时,我得到了#第二个元素,其中没有任何选项。

这是index.php

//this is first select element and it works fine

echo '<select id="first">';
$data = $conn->query("SHOW TABLES FROM something");
while ($row = mysqli_fetch_array($data)) {
echo '<option>' . $row[0] . '</option>';
}
echo '</select>';

// this is placeholder for second select element
<div id="placeholder"></div>

这是 script.php:

// this variable will hold selected option from ajax request
$selected = $_POST['selectedOption'];
// this is second element and it works fine when it's not called from another page
echo '<select id="second">';
$data = $conn->query("SELECT * TABLES FROM $selected");
while ($row = mysqli_fetch_array($data)) {
echo '<option>' . $row['column'] . '</option>';
}
echo '</select>';

这是 ajax.js 文件

$(document).ready(function(){

$(document).on("change", '#first', function(event) {

// grabbing value of first element 
var selectedOption = $('#first option:selected').val();


$.ajax({
    type: 'POST',
    url: 'script.php',
    data: "selectedOption=" + selectedOption,
    cache: false

});

//calling #second element to show up (script.php) in this case

$('#placeholder').load("script.php");

});
});

希望我能够解释我的问题,以便您能够理解。有任何想法吗?我做错了什么?

最佳答案

$.ajax({
    type: 'POST',
    url: 'script.php',
    data: "selectedOption=" + selectedOption,
    cache: false
    success: function(result) {
        $("#placeholder").html(result);
    }
});

Ajax 调用是异步的,您希望在数据返回后设置第二个 select 元素。

关于javascript - AJAX 未从 PHP 脚本返回预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53097792/

相关文章:

javascript - jQuery .height() 无法正常运行

php - CentOS 中更新的 PHP 7 环境的 VirtualMin 安装错误

javascript - 如何在javascript中通过参数更改属性名称

javascript - Cakephp 未将下拉列表中的选定值更改为默认值

javascript - Mongoose - 无法读取未定义的属性 'push'

javascript - parseFloat 函数没有按预期工作

javascript - 在条件语句中获取 $(this)

刷新后 PHP Session 将不起作用

php - 将客户电子邮件地址添加到 WooCommerce 中的新帐户电子邮件通知

jquery拖动元素