2016-04-15 80 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和值值...