2017-07-03 17 views
0

我想通過Ajax調用發送輸入字段數據到PHP文件,然後檢查數據到數據庫中(如果可用),然後顯示錯誤消息,如果沒有,則顯示成功消息。在Ajax上發送輸入數據並在php文件中處理

下面是我的代碼 - HTML代碼 -

<lable class="required">Guillemot Reference Number:<em>*</em></lable><span><input type="text" name="case_number" id="case_number" class="input-text required-entry" value="" onChange="checkReferenceNumber()"/> <p class="case_number_warning" style="color:red; vertical-align: bottom; font-size: smaller; display:inline;"> Already Exists </p></span>

使用Javascript -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
    <script type="text/javascript"> 
 
    jQuery(document).ready(function($){ \t 
 
    \t $('.case_number_warning').hide(); 
 
    \t $("#case_number").on('change', function(){ 
 
    \t \t $('.case_number_warning').hide(); 
 
    \t \t var datetime = d.getTime(); 
 
    \t \t var case_number = $('#case_number').val(); 
 
    \t \t $.ajax({ 
 
    \t \t  url: '/checkReferenceNumber.php', 
 
    \t \t  type: 'POST', 
 
    \t \t  data:({ 
 
    \t \t \t action \t : 'checkrefno', 
 
    \t \t \t case_number : case_number 
 
    \t \t \t }), 
 
    
 
    \t \t  success:function(result) { 
 
    \t \t \t alert("Sent"); \t 
 
    \t \t \t var response = JSON.stringify(result); 
 
    \t \t \t }, 
 
    \t \t  error: function() { alert("Already Exists"); $('.case_number_warning').show(); } 
 
    \t \t }); \t \t \t \t \t \t 
 
    \t }); 
 
    }); 
 
    
 
    </script> 
 
    <script>jQuery.noConflict();</script>

PHP文件checkReferenceNumber.php碼 -

<?php 
set_time_limit(0); 
require_once '/var/www/html/app/Mage.php'; 
umask(0); 
ini_set('memory_limit', '-1'); 
Mage::app('default'); 
$connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 

    $action = trim($_REQUEST['action']); 
    $case_number = trim($_POST['case_number']); 
    /* 
    $action = 'checkrefno'; 
    $case_number = 'Ref-12345678'; 
    */ 

    if($action == 'checkrefno'){ 
     $refno_output = $connection->fetchOne("select reference_number from guillemot_reference_number where reference_number = '".$case_number."'"); 
     if($refno_output) { 
      echo "\nReferece no - ". $refno_output; 
     } 
    } 
?> 

在此我要檢查輸入的文件數據在數據庫中可用與否Ajax的OnChange事件如果數據是可用的,它應該返回消息數據是可用的或真或假。

我想從php代碼中獲取響應數據。如何從php代碼返回數據到phtml文件。並顯示錯誤信息。

任何幫助,將不勝感激。

感謝

回答

1

在PHP中使用exit如果參考號碼找到像,

........ 
    if($action == 'checkrefno'){ 
     $refno_output = $connection->fetchOne("select reference_number from guillemot_reference_number where reference_number = '".$case_number."'"); 
     if($refno_output) { 
      echo $refno_output; 
      exit; 
     } 
    } 
    echo 'NOTFOUND'; // status NOT FOUND ref code 
    exit; 
?> 

jQuery中使用

$("#case_number").on('change', function(){ 
    $('.case_number_warning').hide(); 
    var datetime = d.getTime(); 
    var case_number = this.value; // use simple this.value here 
    $.ajax({ 
     url: '/checkReferenceNumber.php', 
     type: 'POST', 
     data:({ 
      action : 'checkrefno', 
      case_number : case_number 
     }), 
     success:function(result) { 
      alert("Sent"); 
      if(result==="NOTFOUND"){ 
       alert("Not Exists"); 
      } else { 
       alert("Ref Num "+result+" already Exists"); 
       $('.case_number_warning').show(); 
      }    
     } 
    }); 
}); 
+0

由於其工作的罰款。 –

0

您應該使用的PHP文件die(json_encode());功能

if($refno_output) { 
      die(json_encode($refno_output)); 
     } 
0

,我看到你正在使用JSON在JS擺脫PHP數據

  success:function(result) { 
      alert("Sent"); 
      var response = JSON.stringify(result); 
      }, 

所以,你可以返回PHP中的JSON字符串

if($action == 'checkrefno'){ 
    $refno_output = $connection->fetchOne("select reference_number from guillemot_reference_number where reference_number = '".$case_number."'"); 
    if($refno_output) { 
     $return = array("success" => true, "refno" => $refno_output); 
     echo json_encode($return); 
    }else{ 
     $return = array("success" => false, "error" => "Some error"); 
     echo json_encode($return); 
    } 
} 

,並用它在JS

  success:function(result) { 
      alert("Sent"); 
      var err = false; 
      var response = null; 
      try{ 
       response = JSON.parse(result); 
      }catch(e){ 
       err = true; 
       console.error(e); 
      } 
      if(response.success && !err){ 
       //do something with response.refno 
      }else{ 
       //if error 
      } 
      }, 
相關問題