2017-02-25 14 views
0

まず、データベースのデータをVIEWのテーブルに一度に1つずつ表示したかったのですが、変更があればユーザーはテーブルをダブルクリックするだけです新しい値を入力します。 here is the screenshot:ajaxを使用してCIコントローラに新しいjquery値を渡す方法

私は、私は次の何をしようとしているは、私は、コントローラに渡すことができますように、新しいデータ/値を保存することで、表示や編集を行っています。

は、ここでは、データベース内のデータを取得し、...

<script type="text/javascript"> 
        var leads = Array(); 
        var lead_count = 0; 
        <?php $count = 0; foreach($agent_leads as $info):?> 
         leads[<?php echo $count; ?>] = {"fullname": "<?php echo $info['fullname'] ?>", 
                 "gender" : "<?php echo $info['gender'] ?>", 
                 "address": "<?php echo $info['address'] ?>", 
                 "city" : "<?php echo $info['city']; ?>", 
                 "state" : "<?php echo $info['state']; ?>", 
                 "zipcode" : "<?php echo $info['zipcode']; ?>", 
                 "email": "<?php echo $info['email'] ?>" 
        }; 
        <?php $count++; endforeach; ?> 
        // console.log(lead_count) 
        // console.log(leads[lead_count]) 
        if(lead_count == 0) 
        { 
         var append = ''; 
         append += '<tr>'; 
         append += '<td><div contenteditable>'+leads[lead_count].fullname+'</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].gender+ '</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].address+'</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].city+ '</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].state+ '</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].zipcode+'</div></td>'; 
         append += '<td><div contenteditable>'+leads[lead_count].email+ '</div></td>'; 
         append += '<td><input type="text" id="status"/></td>'; 
         append += '<td><input type="number" id="qty"/></td>'; 
         append += '<td><input type="text" id="comment"/></td>'; 
         append += '<td><button class="btn btn" id="sub" type="submit">Submit</button></td>'; 
         append += '</tr>'; 

         $('#leads_info').html(append); 
        } 

        $(document).on('click', '#move_on', function(){ 
         var order = Number($(this).attr('data-order')) + 1; 
         var append = ''; 
         append += '<tr>'; 
         append += '<td>'+leads[order].fullname+'</td>'; 
         append += '<td>'+leads[order].gender+'</td>'; 
         append += '<td>'+leads[order].address+'</td>'; 
         append += '<td>'+leads[order].city+'</td>'; 
         append += '<td>'+leads[order].state+'</td>'; 
         append += '<td>'+leads[order].zipcode+'</td>'; 
         append += '<td>'+leads[order].email+'</td>'; 
         append += '<td><input type="text" id="status"/></td>'; 
         append += '<td><input type="number" id="qty"/></td>'; 
         append += '<td><input type="text" id="comment"/></td>'; 
         append += '<td><button class="btn btn-success" id="sub" type="submit">Submit</button></td>'; 
         append += '</tr>'; 
         $(this).attr('data-order', order); 
         $('#leads_info').html(append); 
        }); 

ONボタンMOVEをクリックしてjqueryのを使用してテーブルにそれを表示するための私のコードは、ここに私のAjaxのコードがあります。..

$(document).on('click', '#sub', function(){ 
         var infos = Array(); 
         infos['i'] = { 
            lead:leads[lead_count], 
            status: $('#status').val(), 
            qty: $('#qty').val(), 
            comment: $('#comment').val() 
           } 
         $.ajax({ 
          url: window.location + '/sales_report', 
          type: 'POST', 
          data: infos, 
          error: function (XMLHttpRequest, textStatus, errorThrown) { 
           console.log('error'); 
          }, 
          success: function (result) { 
           console.log('success'); 
          } 

         }); 
        }); 

Submitをクリックしてすべてのデータをコントローラに渡すと、エラーが発生します。console.log() このjqueryとajaxを初めて使用しています。私はビューからコントローラに配列を渡す方法についてはあまりよく分かりませんが、モデル - >コントローラからデータを取得する方法について少しはわかります

テーブルの新しい値をコントローラに渡す方法はありますか?

答えて

0

エラーが表示された場合は、開発者コンソールを開き、ネットワークページに移動して/ sales_reportページでエラーを確認してください。

+0

はい、既に行っています!しかし、私はこのコードを 'console.log( 'error');と置くだけで、それは合格しませんが、文字通り私はなぜそれが成功しないのか分からなかったことを知ります。どのようにエラーメッセージを取得するには? – justAbeginner

+0

@justAbeginner console.log(textStatus); console.log(errorThrown); console.log(XMLHttpRequest); – grinat

+0

このエラーは、次のようなエラーが発生します。{Object} jQuery.Callbacks/self.add()、失敗:jQuery.Callbacks/self.add()、progress:jQuery.Callbacks/self.add(jQuery.Callbacks/self.add()) ()、state:.Deferred/promise.state()、13 more ...} ' – justAbeginner

関連する問題