2016-04-15 66 views
0

阿賈克斯阿賈克斯得到的PHP值

$(document).ready(function(){ 
      $("#diklat").change(function(){ 
      var diklat = $("#diklat").val(); 
      $.ajax({ 
       url: "function.php", 
       data: {'action': 'diklat'}, 
       cache: false, 
       success: function(msg){ 
        $("#angkatan").html(msg); 
       } 
      }); 
      }); 

PHP

$get_action = $_GET['action']; 
if($get_action=='diklat'){ 
     $diklat = $_GET['diklat']; 
     $angkatan = mysql_query("SELECT id,name FROM batches WHERE IdMasterDiklat='$diklat' order by id"); 
     echo "<option>-- Pilih Angkatan --</option>"; 
     while($p = mysql_fetch_array($angkatan)){ 
      echo "<option value=\"".$p['id']."\">".$p['name']."</option>\n"; 
     } 
    } 

值didnt包括我的阿賈克斯,阿賈克斯只讀回聲。如何獲得該值

+3

使用'$ _GET [ '行動']'代替'$ _GET [ 'diklat']在您的JS代碼數據' – Saty

+0

:{ '行動': 'diklat'},應該是數據:{'action':diklat}, – vishwakarma09

+0

@ vishwakarma09沒有什麼變化 – kamenrider

回答

0

你應該通過兩個變量,一個動作和其他ID(diklat)

阿賈克斯:

$(document).ready(function(){ 
      $("#diklat").on('change', function(){ 
      var diklat = $("#diklat").val(); 
      $.ajax({ 
       type: "POST", 
       url: "function.php", 
       data: {'action': 'diklat', 'diklat':diklat}, 
       cache: false, 
       success: function(msg){ 
        $("#angkatan").html(msg); 
       } 
      }); 
      }); 

PHP

$action = isset($_POST['action']) ? $_POST['action'] : ''; 

if ($action == 'diklat') 
{ 
    $diklat = isset($_POST['diklat']) ? $_POST['diklat'] : ''; 
    $angkatan = mysql_query("SELECT id, name FROM batches WHERE IdMasterDiklat='$diklat' order by id"); 
    echo "<option>-- Pilih Angkatan --</option>"; 
    while($p = mysql_fetch_array($angkatan)) 
    { 
     echo "<option value=\"".$p['id']."\">".$p['name']."</option>\n"; 
    } 
} 
+0

哦,上帝。是的,我忘了通過2 var。謝謝 – kamenrider

+0

也嘗試使用mysqli來代替mysql,mysql在將來的PHP版本中被棄用 –

+0

用$(「#diklat」)編輯on('change',function(){ –

0

您已寫入data: {'action': 'diklat'}但它應該dilkat不帶引號作爲其變量,所以在PHP中,您將獲得值$_GET['action']

阿賈克斯

$(document).ready(function(){ 
      $("#diklat").change(function(){ 
      var diklat = $("#diklat").val(); 
      $.ajax({ 
       url: "function.php", 
       data: {'action': diklat}, 
       cache: false, 
       success: function(msg){ 
        $("#angkatan").html(msg); 
       } 
      }); 
      }); 

PHP

if($_GET['action'] == 'diklat'){ 
    $diklat = $_GET['action']; 
    $angkatan = mysql_query("SELECT id,name FROM batches WHERE IdMasterDiklat='$diklat' order by id"); 
    echo "<option>-- Pilih Angkatan --</option>"; 
    while($p = mysql_fetch_array($angkatan)){ 
     echo "<option value=\"".$p['id']."\">".$p['name']."</option>\n"; 
    } 
} 
0

兩件事情:

對於GET請求,問一個PHP服務器,數據應該是URL編碼(正如您所看到的here,查詢字符串僅附加到URL中。 。)因此,告訴'data' : '?action=diklat' ......

編輯:jQuery將自動轉換對象URL編碼的查詢字符串...所以它與陣列工作!我有角的$ HTTP ...

和混亂也,參數將在$_GET['action'](因爲動作是參數名,並diklat的 ...所以外匯牌價查詢字符串關聯數組與參數的名稱爲keysn和值值...