2016-01-19 25 views
0

我正在一個項目中工作,我被困在這裏,我不知道爲什麼我無法從我的數據庫獲取該列表\如何使用AJAX從數據庫中獲取數據並在頁面上顯示

這裏是我的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)); 
      } 
    } 
     }) 
    }); 
}) 

而且我的functions.php:

<?php 
    $server="localhost"; 
    $usr="root"; 
    $passwd=""; 
    $data="combo"; 
    $db=mysqli_connect($server,$usr,$passwd,$data) or die ("Error en la conexion1"); 
    $Accion = $_GET['accion']; 
    if($Accion=="ac"){ 
     header('Content-Type: application/json'); 
     $paises = array(); 
     $Consulta = mysqli_query($db,"SELECT * FROM paises")or die ("Error en la conexion7"); 
     while($Fila=mysqli_fetch_assoc($Consulta)){ 
      $paises[] = $Fila; 
     } 
     echo json_encode($paises); 
    } 
    if($Accion=="ad"){  
     header('Content-Type: application/json'); 
     $regiones = array(); 
     $Consulta1 = mysqli_query($db,"SELECT * FROM regiones WHERE id_pais=4");//.$_REQUEST['id_pais']); 
     while($Fila=mysqli_fetch_assoc($Consulta1)){ 
      $regiones[] = $Fila; 
      //echo json_encode($Fila);  
     } 
     echo json_encode($regiones); 
    } 
?> 

好吧,我的問題是,我真的不知道該怎麼第一個真正的工作:d,但是當我打電話給url:datos.php = ad該區塊無效:/

+0

好兄弟,拿着... –

回答

0

首先,您會發現查看這些有關AJAX的簡單示例很有幫助。不要只讀它們,將它們複製到你的服務器並使它們工作。改變一些名字或數值 - 看看它們是如何工作的。

AJAX request callback using jQuery

接下來,這裏是一個職位,給出了一個概述如何PHP /網頁/ AJAX共同努力。花幾分鐘仔細閱讀。看看你是否可以按照邏輯。我敢打賭,燈泡會爲你而來。

PHP - Secure member-only pages with a login system


使您的代碼標準越好。不要採取任何捷徑。使用完整$.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,您將收到您在$_POST數組變量張貼的值如果在AJAX,你被點名了你的變量post_var_name(正如我們在上面的例子一樣),然後。那就是你如何訪問內容:

$myVar = $_POST['post_var_name']; 

當你遇到麻煩時,一個好主意是進行一些測試。(1)在PHP端,註釋掉一切,並在上面放於echo命令,如:

<?php 
echo 'I got here'; 
die(); 

返回的網頁上,在AJAX成功的功能,只是提醒你會得到什麼:

success: function(d){ 
    alert(d); 
} 

在這一點上,你知道兩件事情:

  1. 你的AJAX至 - PHP通信是否正常工作,並

  2. 您會看到傳遞給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:

<?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; 
0

這是法文嗎?大聲笑,幸運的是它仍然是所有的代碼。 試試這個:

你的成功(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)); 
     } 
+0

問題不在那裏。 –

+0

我認爲這是在functions.php中的問題:/ –

相關問題