2016-11-13 8 views
0

以下はHTMLコードです。私はそのid = "sss"フィールドでajaxリクエストによって返された値だけを得ることができます。ajaxはcodeigniterの1行を除く動的入力フィールドでリクエストと戻り値を送信できません

私の問題は、画像を下記に記載されています: -

Problem One Showing On Image

Problem Two Showing On Image

<form id="dynamic2" action="<?= site_url('product/save') ?>" method="post"> 
    <table class="table"> 
    <tbody id="itemlist2" class="detailss"> 
     <tr> 
     <td> 
      <select id="select-product" class="form-control" data-cell="B1" name="product_name[]"> 
      <option value=""> 
      </option> 
      <?php 
       foreach ($product as $key): 
      ?> 
      <option value="<?php echo $key['id'] ?>"> 
       <?php echo $key['product_name'] ?> 
      </option> 
      <?php endforeach; ?> 
      </select> 
     </td> 

     <td> 
      <input type="text" id="sss" data-cell="C1" name="price[]" class="form-control" value=""> 
     </td> 

     <td> 
      <input type="text" data-cell="D1" name="quantity[]" class="form-control"> 
     </td> 
     <td> 
      <input type="text" data-cell="E1" name="discount[]" class="form-control"> 
     </td> 
     <td> 
      <input type="text" data-cell="F1" name="total[]" 
      disabled="true" data-formula="(D1*C1)-(D1*C1*E1/100)" 
      class="form-control"> 
     </td> 
     </tr> 
    </tbody> 
    <input type="submit" value="Submit" class="btn btn-primary"> 
    </table> 
</form> 

は、私が動的に作成された入力フィールドに、AJAXリクエストによって返された値を取得しておりません。

ここに私の動的に作成された入力フィールドのjSコードです。

<script type="text/javascript"> 
    $(function() { 
     $form = $('#dynamic2').calx(); 
     $('.addrowss').click(function() { 

      $itemlist = $('#itemlist2'); 
      $counter = 5; 
      var i = ++$counter; 
      var tr = '<tr>' + 
       '<td><select id="select-product" class="form-control" data-cell="B' + i + '" name="product_name[]"><option value=""></option><?php 
         foreach ($product as $key): 
          ?><option value="<?php echo $key['product_name'] ?>"><?php echo $key['product_name'] ?></option><?php endforeach; ?></select></td>'+ 
       '<td><input id="sss" type="text" data-cell="C' + i + '" name="price[]" class="form-control" value=""></td>' + 
       '<td><input type="text" data-cell="D' + i + '" name="quantity[]" class="form-control"></td>' + 
       '<td><input type="text" data-cell="E' + i + '" name="discount[]" class="form-control"></td>' + 
       '<td><input type="text" class="form-control" data-cell="F' + i + '" name="total[]" data-formula="(D' + i + '*C' + i + ')-(D' + i + '*C' + i + '*E' + i + '/100)"></td>' + 
       '<td><a href="#" class="remove">Remove</a></td>' + 
       '</tr>'; 
      $('.detailss').append(tr); 
      $form.calx('update'); 
      $form.calx('getCell', 'G1').setFormula('SUM(F1:F' + i + ')'); 
     }); 

     $('body').delegate('.remove', 'click', function() { 
      var tr = $(this).parent().parent(); 
      var c = confirm("Do you want to remove this ?"); 
      if (c) { 
       tr.remove(); 
      } 
     }); 
    }); 
</script> 

のAjaxコード

<script type="text/javascript"> 
    $(document).ready(function() { 

    $("#select-product").change(function() { 

     var id = $(this).val(); 
     // alert(id); 
     $.ajax({ 
     type: "GET", 
     url: "<?php echo site_url('/product/view_data'); ?>", 
     data: { 
      "id": id 
     }, 
     cache: false, 
     success: function(data) { 
      var tmp = data.split(","); 
      $('#sss').val(tmp[6]); 
     } 


     }); 
    }); 

    }); 

</script> 

Product.phpコントローラ

public function view_data() 
{ 
    if(isset($_GET['id'])){ 
    $this->load->model('Product_model'); 
    $id = $_GET['id']; 

    $param = $this->Product_model->get_ajax_value($id); 
    foreach($param as $a) 
     echo $a.","; 

    exit;  
    }  
} 
+0

問題の画像を表示し、jsbeautifier.orgでコードを実行して混乱の程度を減らしてください。 – jwpfox

答えて

0

私はそれがすべて正しいデータを返すされていない理由を正確にわかりません。しかしここでは、あなたの問題をデバッグするのに役立つステップがあるかもしれません。

console.log(data)を追加します。 ajax呼び出しから何が返されているかを確認する。ブラウザのコンソールを使用してこれを確認してください。

にコードを変更し

:私はこれはあなたのコードへの完全な答えではありません理解

<script type="text/javascript"> 
$(document).ready(function() { 

        $("#select-product").change(function() { 

        var id = $(this).val(); 
        // alert(id); 
        $.ajax({ 
          type: "GET", 
          url: "<?php echo site_url('/product/view_data'); ?>", 
          data: {"id":id}, 
          cache: false, 
          success: function(data){ 
           console.log(data); //this will show what is returned. 
           var tmp = data.split(","); 
           $('#sss').val(tmp[6]); 
          } 


         }); 
        }); 

}); 

。しかし、サーバーがクライアントサイドのコードに戻ってきたことを確認するのに適切な方向に進むかもしれません。

+0

私は動的ファイルを作成し、製品選択ボックスをクリックするとコンソールログに何も書き込まれません。 – TPLMedia24

+0

私は最初の行からのみ応答を得ていますが、他の行は動的に作成していません。 – TPLMedia24

+0

スクリーンショットを教えてもらえますか? – akasoggybunz

関連する問題