2017-09-27 7 views
0

私はこのような形をしています。OJでAJAXリクエストを送信するにはどうすればよいですか?

<form action="Barang.php" method="POST" class="form-horizontal" role="form"> 
    <div class="form-group"> 
     <label class="control-label col-md-3" 
     for="id_suplier">ID suplier :</label> 
     <div class="col-md-5"> 
      <select class="selectpicker" title="Ketikkan ID suplier" data-width="100%" data-live-search ="true" id="id_suplier" autocomplete="off" onchange="" required> 
       <?php 
        $query = $db->query('SELECT * FROM tb_suplier'); 
       ?> 
       <?php 
        while($row = $query->fetch(PDO::FETCH_ASSOC)){ ?> 

        <option value="<?php echo $row['id_suplier']; ?>"><?php echo $row['id_suplier']; ?></option> 

       <?php 
        } 
       ?> 
      </select> 
     </div> 
     <span class="badge badge-info" style="margin-top:10px;" id="namasup">nama suplier</span> 
    </div> 
    </form> 

    <script type="text/javascript"> 
     $('#id_suplier').on('change', function() { 

      var id_suplier=$("#id_suplier").val(); 

      $.ajax({ 
       type:"POST", 
       url:"Barang.php", 
       dataType:'json', 
       success:function(data) { 
       $("#namasup").html(data.namasup); 
       } 
     }); 

    }) 

    </script> 

は、と私はBarang.phpに要求を送信したい、と私はnamasup = getSuplier()で処理し、データベースに名前suplierを取得し、IDに値を載せていきたいと思います。どうすれば処理できますか?

そしてここでコードBarang.php

<?php 
    class Barang 
    { 


     function getSuplier($id){ 
      $query = $this->db->query("SELECT nama from tb_suplier where id='$id' "); 
      $result=$query->fetch(PDO::FETCH_ASSOC); 
      return $result; 
     } 
    } 
+1

あなたは 'id_suplier'!あなたはそれを 'data:{id:id_suplier}、' – Jeff

+0

@Jeff ok thanksに追加する必要があります。しかし、どうすればgetSuplier()にリクエストを送ることができますか?私は選択されたオプションにオンキーがあると混乱します。 – Rachmad

答えて

0

たぶん、あなたはそれに加えて、この

class Barang 
{ 
    function getSuplier($id){ 
     // your code here .... 
    }  
} 

$barang = new Barang; 

$barang->getSupplier($_GET['id']); 

を行うことができ、Jeffは正しいです。 id_suplierをサーバーに送信していません。それを送ってください。

0

は、私はあなた、あなたがHTML

<html> 
<body> 
<form action="Barang.php" method="POST" class="form-horizontal" role="form"> 
    <div class="form-group"> 
    <label class="control-label col-md-3" 
     for="id_suplier">ID suplier :</label> 
     <div class="col-md-5"> 
      <select class="selectpicker" title="Ketikkan ID suplier" data-width="100%" data-live-search ="true" id="id_suplier" autocomplete="off" onchange="" required> 

      </select> 
     </div> 
     <span class="badge badge-info" style="margin-top:10px;" id="namasup">nama suplier</span> 
    </div> 
</form> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
    function createOption(datas) 
    { 
    var html = ""; 
    for (var i in datas){ 
     var data = datas[i]; 
     html = html + '<option value="'+data['id']+'">'+ data['name'] +'</option>'; 
    } 
    return html; 
    } 
    $(document).ready(function() { 
     //get all data 
     $.ajax({ 
      type:"POST", 
      url:"Barang.php", 
      type: "json", 
      //dataType:'json', 
      success:function(res) { 
      var datas = JSON.parse(res); 
      $("#id_suplier").html(createOption(datas)); 
      //tigger change event 
      $('#id_suplier').change(); 
      } 
     }); 

     $('#id_suplier').on('change', function(){ 
      //change name in span 
      var name = $('#id_suplier').find(":selected").text(); 
      $("#namasup").html(name); 
     }); 
    }); 


</script> 
</body> 

でこのコード

を使用することができ、データベースからあなたは私の意見で選択

内のデータを変更するたびに名前を要求する必要はありませんだと思いますPHPの場合

class Barang 
{ 
    //Method for get all datas 
    public function getSupliers(){ 
     //I don't have you database so I skip this part 

     // $query = $this->db->query("SELECT nama from tb_suplier"); 
     // $result=$query->fetch(PDO::FETCH_ASSOC); 
     // return $result; 

     //mock data 
     $datas = [[ 
      'id' => 1, 
      'name' => 'Test 1', 
     ],[ 
      'id' => 2, 
      'name' => 'Test 2', 
     ],[ 
      'id' => 3, 
      'name' => 'Test 3', 
     ]]; 

     return $datas; 
    } 
} 

$class = new Barang(); 
$datas = $class->getSupliers(); 
echo json_encode($datas); 

希望のヘルプ

+0

ありがとう@Akkapong Kajornwongwattana、私はそれを試してみましょう。 – Rachmad

関連する問題