2017-09-18 56 views
0

誰かが私に手を差し伸べることができたら幸いなことにエラーを見つけようと思っています。値を取得する更新SQL文を実行しようとしています。 POST AJAXリクエストとすべてがうまくいくようですが、テーブルの値は更新されません。Codeigniter Ajaxのparamが動作しないSQLテーブルの更新

アプリケーションの流れはこのようなものです(と、それは実際に動作する、単なるデータの更新なし):

私の見解では私は4つのテキストフィールドに入力値へのユーザーのためのモーダルウィンドウを爆発させるボタンがあり、ユーザーはボタンをクリックして、POST AjAX呼び出しでその値を送信し、コントローラーとメソッドが更新を処理した後、ユーザーは最初にボタンをクリックしたのと同じページに戻ります。

などの追加情報に、パスが正しい、流れが正常に動作しますが、値はコントローラにAJAX呼び出しを通じて正しく送信されているが、私は上...その時点から失われています:S

わかりません私が間違ってやっている、任意のヘルプは大歓迎です

//マイビュー - HTMLボタン//

<a href="javascript:" onclick="service_report_additional_data(<?php echo $jobDetails[0]['job_id'] ?>)" class="dark_grey"><i class="fa fa-file fa-2x" aria-hidden="true" ></i></a> 

//マイビュー - HTMLモーダルウィンドウコード//

<div id="confirmation_box_service_report_additional_data" title="" style="display:none;"> 
    <h1 align="center" style="color: #333333"><?php echo $this->lang->line('service_report_title') ?></h1><br /> 
    <h2 align="center" style="color: #DF9E0A"><strong><?php echo $this->lang->line('project_service_comments') ?></strong></h2><br /> 
    <form id="form_service_report_additional_data" name="form_service_report_additional_data" method="post" action=""> 
     <table width="100%"> 
      <tr> 
      <td width="45%" class="red_cell_background"> 
       <div class="form-group"> 
        <label for="client_images_comments"><?php echo $this->lang->line('client_images_comments') ?></label> 
        <textarea class="form-control" rows="5" id="client_images_comments"></textarea> 
       </div>    
      </td> 
      <td width="5%" class="purple_cell_background">&nbsp;</td> 
      <td width="45%" class="purple_cell_background"><div class="form-group"> 
       <label for="specialist_images_comments"><?php echo $this->lang->line('specialist_images_comments') ?></label> 
       <textarea name="specialist_images_comments" rows="5" class="form-control" id="specialist_images_comments"></textarea> 
      </div></td> 
      </tr> 
      <tr> 
      <td class="red_cell_background"><div class="form-group"> 
       <label for="spare_parts_comments"><?php echo $this->lang->line('spare_parts_comments') ?></label> 
       <textarea name="spare_parts_comments" rows="5" class="form-control" id="spare_parts_comments"></textarea> 
      </div></td> 
      <td class="purple_cell_background">&nbsp;</td> 
      <td class="purple_cell_background"><div class="form-group"> 
       <label for="final_comments"><?php echo $this->lang->line('final_comments') ?></label> 
       <textarea name="final_comments" rows="5" class="form-control" id="final_comments"></textarea> 
      </div></td> 
      </tr> 
     </table>  
    </form> 
</div> 

//私のJavascriptのモーダルウィンドウのコード//

function service_report_additional_data(jobId) { 
    $("#spare_parts_comments").val("<?php echo $jobDetails[0]['spare_parts_description']; ?>"); 

    $("#confirmation_box_service_report_additional_data").dialog({ 
     autoOpen: false, 
     resizable: false, 
     width: 900, 
     heightStyle: "content", 
     modal: true, 
     closeOnEscape: false, 
     open: function(event, ui) { 
      $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
     },  

     buttons: [ 
       { 
        text: "<?php echo $this->lang->line('save_and_close'); ?>", 
        class: "btn btn-warning", 
        click: function() { 

         var clientImagesComments = $('#client_images_comments').val(); 
         var technicianImagesComments = $('#specialist_images_comments').val(); 
         var sparePartsDescription = $('#spare_parts_comments').val(); 
         var finalThoughts = $('#final_comments').val(); 

            //alert(finalThoughts) 
         servicereportadditionaldatasaving(jobId, clientImagesComments, technicianImagesComments, sparePartsDescription, finalThoughts); 

        }, 
       }, 
       { 
        text: "<?php echo $this->lang->line('Cancel'); ?>", 
        class: "btn btn-default", 
        click: function() { 
         $(this).dialog("close"); 
        } 
       } 
      ], 
      close: function() { 
       $(this).dialog("close"); 
      }  

     }); 

      $("#confirmation_box_service_report_additional_data").dialog('open');  
} 

//私のAJAX呼び出し//

function servicereportadditionaldatasaving(jobId, clientImagesComments, technicianImagesComments, sparePartsDescription, finalThoughts) { 
       //alert(clientImagesComments) 
    $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url() . DISPATCHERADMIN . '/jobs/servicereportadditionaldatasaving/' ?>", 
      data: { 
       'jobId':     jobId, 
       'clientImagesComments':  clientImagesComments, 
       'technicianImagesComments': technicianImagesComments, 
       'sparePartsDescription': sparePartsDescription, 
       'finalThoughts':   finalThoughts 
      }, 
      success: function (data){ 
       //alert(data); 
       location.href = '<?php echo base_url() . DISPATCHERADMIN . '/myjob/details/' ?>' + jobId; 
      }, 
      error: function (jqXHR, textStatus, errorThrown){ 
       console.log('error:: ' + errorThrown); 
      } 
     }); 
} 

//マイコントローラー//

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Jobs extends CI_Controller { 

    public function __construct() { 
     // Construct the parent class 
     parent::__construct(); 
     $this->lang->load('message', 'english'); // language file 
     $this->load->model('dispatcher/jobs_model'); 
    } 

    public function servicereportadditionaldatasaving() {  

     $postData = $this->input->post(); 
     $data = array(
       'table_name'     => 'jobs', 
       'job_id'      => $postData['jobId'], 
       'client_images_comments'  => $postData['clientImagesComments'], 
       'technician_images_comments' => $postData['technicianImagesComments'], 
       'spare_parts_description'  => $postData['sparePartsDescription'],          
       'final_thoughts'    => $postData['finalThoughts']              
     ); 
     $this->jobs_model->update_job_service_report_additional_data($data); 
    } 

} 
?> 

//マイモデル//

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Jobs_model extends CI_Model { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function update_job_service_report_additional_data($data) {  

     extract($data); 
     $this->db->where("job_id", $job_id); 
     $success = $this->db->update($table_name, array('client_images_comments'  => $client_images_comments, 
                 'technician_images_comments' => $technician_images_comments, 
                 'spare_parts_description'  => $spare_parts_description, 
                 'final_thoughts'    => $final_thoughts 
              )); 
     if($success) { 
      return $success; 
     } else { 
      return false; 
     } 
    } 
} 

?> 
+0

モデルで 'var_dump($ data)'してみましたか? – jesuisgenial

+0

こんにちは、返信ありがとう、私はそれを試みましたが、私はその出力を見る場所を見つけるように見えない、私は、ブラウザのデバッガ、コンソールとネットワークのタブで試したと私はできません JOBID = 462 clientImagesComments = CCC technicianImagesComments = EEE sparePartsDescription = AAAAA finalThoughts =:それが表示されている場合、私は、ブラウザの開発ツールで、[ネットワーク]タブから見ることができますどのような は、以下のparamsが送信されていることで、参照fuf コントローラ:http:// localhost/mysite/dispatcher/jobs/servicereportadditionaldatasaving/ – JullGreen

+0

クロム開発者ツールを使用している場合は、[ネットワーク]タブに移動し、[xhrフィルタ]を選択してajax URLを見つけます。要求と応答に関する情報が表示されます。何も表示されない場合は何かが間違っています。 – jesuisgenial

答えて

0

私はここにあるコードに探して、多くの試行の後、私は問題は次の行でAjax呼び出しにあったことが判明し、その答えを自分自身を見つけた:それはとして渡されるIDを期待していた

url: "<?php echo base_url() . DISPATCHERADMIN . '/jobs/servicereportadditionaldatasaving/' ?>", 

次のように元のURLの一部は:

url: "<?php echo base_url() . DISPATCHERADMIN . '/jobs/servicereportadditionaldatasaving/' ?>" + jobId, 

を、私はより詳細に私のコードを確認する必要がありますが、それが問題だった正直に言うと、すべてが期待どおりに動作しています。

関連する問題