Javascript 如何使用AJAX从数据库获取数据并显示在页面上

Javascript 如何使用AJAX从数据库获取数据并显示在页面上,javascript,php,ajax,Javascript,Php,Ajax,我在一个项目中工作,我被困在这里,我不知道为什么我不能从我的数据库中获取列表\ 这是我的JAVASCRIPT $(document).ready(function(){ $.ajax({ url:'datos.php?accion=ac', success:function(datos){ for(x = 0;x<datos.length;x++){ //$("#PAIS").append("&

我在一个项目中工作,我被困在这里,我不知道为什么我不能从我的数据库中获取列表\

这是我的JAVASCRIPT

$(document).ready(function(){
    $.ajax({
        url:'datos.php?accion=ac',
        success:function(datos){
            for(x = 0;x<datos.length;x++){
                //$("#PAIS").append("<option value='"+datos[x].id_pais+"'>"+datos[x].pais+"</option>");
                $("#PAIS").append(new Option( datos[x].pais, datos[x].id_pais));
            }
        }
    })

    $("#PAIS").change(function(){
        //var felix=$('#PAIS option:selected').val();
        //alert(felix);
         $.ajax({
            url:'datos.php?accion=ad',
            alert('hola22');
            success:function(datos1){
                console.log("hola");   
                for(x = 0;x<=datos1.length;x++){
                 //$("#PAIS").append("<option value='"+datos[x].id_pais+"'>"+datos[x].pais+"</option>");
                  $("#REGION").append(new Option( datos1[x].region, datos1[x].id_region));
            }
    }
        })
    });
})
$(文档).ready(函数(){
$.ajax({
url:'datos.php?accion=ac',
成功:功能(datos){

对于(x=0;x这是法语吗?哈哈,幸运的是,它仍然是所有代码。 试试这个:

在success(datos1)函数中,用datos1.data替换datos1。Ajax提供了整个响应,您只需要从响应中获取数据

success:function(datos1){
        console.log(datos1);   
        console.log(datos1.data);   
        for(x = 0;x<=datos1.data.length;x++){
             //$("#PAIS").append("<option value='"+datos.data[x].id_pais+"'>"+datos.data[x].pais+"</option>");
              $("#REGION").append(new Option( datos.data[x].region, datos.data[x].id_region));
        }
成功:函数(datos1){
控制台日志(datos1);
console.log(datos1.data);

对于(x=0;x首先,您会发现回顾这些关于AJAX的简单示例很有帮助。不要只是阅读它们,而是将它们复制到您的服务器并使其工作。更改一些名称或值——看看它们是如何工作的

接下来,这里有一篇文章概述了PHP/web page/AJAX是如何协同工作的。花几分钟时间仔细阅读。看看你是否能遵循逻辑。我打赌灯泡会为你点亮的


使您的代码尽可能标准化。不要使用任何快捷方式。使用完整的
$.ajax()
结构,而不是
$.post()
$.get()
(这两种都是
$.ajax()的快捷方式)
。不要跳过任何内容。随着您的进步,您可以开始使用一些快捷方式。但现在,请确保您的AJAX代码块如下所示:

var var_value = $('#someElement').val();

$.ajax({
    type: 'post',
     url: 'your_ajax_processor.php',
    data: 'post_var_name=' +var_value,
    success: function(dataz){
        if (dataz.length) alert(dataz);
        $('body').append(dataz);
    }
});
在PHP中,您将收到您在
$\u POST
数组变量中发布的值。如果在AJAX中,您将变量命名为
POST\u var\u name
(正如我们在上面的示例中所做的),那么这就是您访问内容的方式:

$myVar = $_POST['post_var_name'];
当您遇到问题时,最好进行一些测试。(1)在PHP端,注释掉所有内容,并在顶部输入echo命令,如:

<?php
echo 'I got here';
die();
在这一点上,你知道两件事:

  • 您的AJAX到PHP通信正在工作,并且

  • 您可以看到传递给PHP的值

  • 那么,你可以这样做

    js/jQuery:

    var var_value = $('#someElement').val();
    
    $.ajax({
        type: 'post',
         url: 'your_ajax_processor.php',
        data: 'post_var_name=' +var_value,
        success: function(dataz){
            if (dataz.length) alert(dataz);
            $('body').append(dataz);
        }
    });
    
    <?php
    
        $myVar = $_POST['post_var_name'];
    
        //Now you can do something with variable `$myVar`, such as:
        $out = '
            <div class="red-background"> '.$myVar.' </div>
        ';
    
        //This content is received in the AJAX code block using the variable name you specified: "dataz"
        echo $out; 
    
    PHP:

    var var_value = $('#someElement').val();
    
    $.ajax({
        type: 'post',
         url: 'your_ajax_processor.php',
        data: 'post_var_name=' +var_value,
        success: function(dataz){
            if (dataz.length) alert(dataz);
            $('body').append(dataz);
        }
    });
    
    <?php
    
        $myVar = $_POST['post_var_name'];
    
        //Now you can do something with variable `$myVar`, such as:
        $out = '
            <div class="red-background"> '.$myVar.' </div>
        ';
    
        //This content is received in the AJAX code block using the variable name you specified: "dataz"
        echo $out; 
    

    问题不在那里。我认为问题在于functions.php:/