2016-09-06 8 views
0

tracking_noが存在する場合はトラッキング番号の詳細が表示されますが、実行されていない場合はフォーム検証エラーが表示される場合は、1つのデータ(tracking_no)のみを検索するシステムを作成しています。しかし、私の問題は、ユーザがtracking_no == "123-123-ABC"を入力し、成功した場合のように、jquery/scriptにユーザの入力をどのように渡すことができるかです。成功すればjquery/scriptでユーザー入力データを渡す方法は?私はcodeigniter PHPフレームワークを使用しています

window.location.href = baseurl index.php/main/show_tracking_details/"123-123-ABC";

(のMyScript線16を参照)

モーダルを使用して入力:

<div class="header-line"></div> 
<div class="modal fade" id="modal_form_tracking" role="dialog"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <div class="titolo"> 
      <h3 class="titolo" style="margin-top: 35px; color:orange;">Search Delivery<br>by Tracking No.</h3> 
     </div> 
     <div class="modal-body form"> 
      <form action="#" id="form_tracking" class="form-horizontal"> 
       <div class="form-body"><br><br> 
        <div class="form-group"> 
         <label class="control-label col-md-3">Tracking No.</label> 
         <div class="col-md-9"> 
          <input name="tracking_no" placeholder="Enter Tracking no." class="form-control" type="text"> 
          <span class="help-block"></span> 
         </div> 
        </div> 
       </div> 
      </form> 
     </div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" id="btnTracking" onclick="search_tracking()" class="btn btn-primary" 
      style="background-color: orange; border-color: orange;">Submit</button> 
      <button type="button" class="btn btn-danger" data-dismiss="modal" 
      style="background-color: gray; border-color: gray;">Cancel</button> 
     </div> 
    </div><!-- /.modal-content --> 
</div><!-- /.modal-dialog --> 

のMyScript

function search_tracking() 
{ 
$('#btnTracking').text('Searching...'); //change button text 
$('#btnTracking').attr('disabled',true); //set button disable 
var url = "<?php echo base_url('index.php/main/customer_delivery_details')?>"; 
$.ajax({ 
    url : url, 
    type: "POST", 
    data: $('#form_tracking').serialize(), 
    dataType: "JSON", 
    success: function(data) 
    { 
     if(data.status) //if success close modal and reload ajax table 
     { 
      $('#modal_form_tracking').modal('hide'); 
      window.location.href= "<?php echo base_url('index.php/main/show_tracking_details')?>" 
      alert("Track number exist "); 
     } 
     else 
     { 
      for (var i = 0; i < data.inputerror.length; i++) 
      { 
       $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class 
       $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string 
      } 
     } 
     $('#btnTracking').text('Search'); //change button text 
     $('#btnTracking').attr('disabled',false); //set button enable 


    }, 
    error: function (jqXHR, textStatus, errorThrown) 
    { 
     alert('Error searching data.'); 
     $('#btnTracking').text('Search'); //change button text 
     $('#btnTracking').attr('disabled',false); //set button enable 

    } 
}); 
} 

mycontroller.php

public function customer_delivery_details(){ 
    $this->_validate_trackingno(); 
    $data = $this->input->post('tracking_no'); 
    $this->model_main->find_by_tracking_no($data); 
    echo json_encode(array("status" => TRUE)); 
} 

private function _validate_trackingno() 
{ 
    $data = array(); 
    $data['error_string'] = array(); 
    $data['inputerror'] = array(); 
    $data['status'] = TRUE; 
    $isTrackingExist = $this->model_main->isTrackingExist(); 

    if($isTrackingExist) 
    { 
     $data['inputerror'][] = 'tracking_no'; 
     $data['error_string'][] = 'Enter a valid tracking number.'; 
     $data['status'] = FALSE; 
    } 

    if($this->input->post('tracking_no') == '') 
    { 
     $data['inputerror'][] = 'tracking_no'; 
     $data['error_string'][] = 'Input tracking no.'; 
     $data['status'] = FALSE; 
    } 

    if($data['status'] == FALSE) 
    { 
     echo json_encode($data); 
     exit(); 
    } 
} 

答えて

1

ちょうどあなたの入力フィールドから値を取得し、ほんの少しのポイントこの

if(data.status) //if success close modal and reload ajax table 
    { 
     tracking_no = $('input[name="tracking_no"]').val(); 
     $('#modal_form_tracking').modal('hide'); 
     window.location.href= "<?php echo base_url('index.php/main/show_tracking_details')?>"+"/"+tracking_no; 
     alert("Track number exist "); 
    } 
+0

ありがとうございました! – Cross

+0

喜んで:) –

0

ここでこれを行うには多くのオプションがあります。そのうちの1つに、検索トラッキングが設定されているかどうかを判断する関数を呼び出すサブミットボタンがあります。これが正しい

button type="button" id="btnTracking" onclick="search_tracking()" class="btn btn-primary" 

は今、あなたは今、あなたがいるようにアヤックスを使用してPHPにこの値を渡す

$trackingno = $('#tracking_no').val(); 

を経由して、JavaScriptでフィールド

<input name="tracking_no" placeholder="Enter Tracking no." class="form-control" type="text"> 

にアクセスすることができます。あなたのPHPでは、trackingnoが有効であると主張します。それがサーバーから戻ってきたい詳細のjsonを返すならば。そうでない場合は、検証の詳細を送り返します。あなたが唯一のフィールドを持っているので

シンプル

if(!empty($_POST)) 

は、それはそうでない場合はnullになります、追跡番号が設定されているか否かを検証するために十分でなければなりません。

+0

同様

をURLに追加します: '$( '#のtracking_no')' jQueryのではなく、ネイティブのJavaScript。 – AgataB

+0

私はそれを試してみますが、$ trackingnoは未定義ですか?どこで私はそれを検索トラッキング機能の内側に置くのでしょうか? – Cross

+0

でもありがとうございます。 – Cross

関連する問題