2017-08-01 60 views
-1

我想显示一条消息,检查邮政编码,并返回是否可以为邮政编码进入交货和运输。但是我能够得到只有一个条件的答复。在这里发布我正在使用的代码。可以帮助我如何显示消息的COD和运输方式不同。 这是我的phtml文件。显示2条回复ajax成功

<script> 
     function checkPostcode() { 


      var deliveryMessage = jQuery('#checkDelivery-form #is_deliverable'); 
      var deliveryMessage1 = jQuery('#checkDelivery-form #cod_delivery'); 
      deliveryMessage.removeClass('success').removeClass('error').hide(); 
      deliveryMessage1.removeClass('success').removeClass('error').hide(); 
      var deliveryForm = jQuery('#checkDelivery-form'); 
      if(deliveryForm.valid()) { 
       jQuery.ajax({ 
        type: "POST", 
        url:'<?php echo $this->getUrl('checkDelivery/postcode/check') ?>', 
        data: deliveryForm.serialize(), 
        dataType: "json", 
        showLoader: true, 
        success: function(response) { 
         deliveryMessage.removeClass('mage-error'); 
         deliveryMessage.removeClass('mage-success'); 
         deliveryMessage.addClass(response.type).html(response.message).show(); 
         deliveryMessage.attr('generated','true'); 
        } 
        } 
       }); 
      } 
      return false; 
     } 
</script> 

这是我的PHP文件检查有效的邮政编码并显示响应依据。

public function execute() 
    { 
     ob_start(); 
     $response = []; 
     try { 
      if (!$this->getRequest()->isAjax()) { 
       throw new \Exception('Invalid request.'); 
      } 
      if (!$postcode = $this->getRequest()->getParam('zipcode')) { 
       throw new \Exception('Please enter pincode'); 
      } 

      $region = $this->zipcodeRegion->getCollection()->addFieldToSelect('*')->addFieldToFilter('zip_code',$postcode)->getFirstItem(); 

      if($region['zip_code'] == $postcode) 
      { 
       if($region['is_blocked'] == 1) 
       { 
        if($region['is_cod_available'] == 0) 
        { 
         $response['type'] = 'mage-error'; 
         $response['message'] = 'No delivery available at selected pincode'; 
        } 

       } 
       else 
       { 
        $response['type'] = 'mage-success'; 
        $response['message'] = 'Delivery available at selected pincode'; 
       } 
      } 
      else 
      { 
       $response['type'] = 'mage-error'; 
       $response['message'] = 'Please enter valid pincode'; 
      } 
     } catch (\Exception $e) { 
      $response['type'] = 'mage-error'; 
      $response['message'] = $e->getMessage(); 

     } 
     $this->getResponse()->setContent(json_encode($response)); 
    } 

} 

回答

0

如果没有航运是可以不惜一切,你不需要在你的if($region['is_blocked'] == 1){...检查COD。检查else中的COD,并在那里显示相应的消息。

试试这个:

public function execute() 
    { 
     ob_start(); 
     $response = []; 
     try { 
      if (!$this->getRequest()->isAjax()) { 
       throw new \Exception('Invalid request.'); 
      } 
      if (!$postcode = $this->getRequest()->getParam('zipcode')) { 
       throw new \Exception('Please enter pincode'); 
      } 

      $region = $this->zipcodeRegion->getCollection()->addFieldToSelect('*')->addFieldToFilter('zip_code',$postcode)->getFirstItem(); 

      if($region['zip_code'] == $postcode) 
      { 
       if($region['is_blocked'] == 1) 
       { 

         $response['type'] = 'mage-error'; 
         $response['message'] = 'No delivery available at selected pincode'; 

       } 
       else 
       { 

        if($region['is_cod_available'] == 0) 
        { 
         $response['type'] = 'mage-success'; 
         $response['message'] = 'Delivery available at selected pincode'; 
        }else{ 
         $response['type'] = 'mage-success'; 
         $response['message'] = 'Delivery available at selected pincode but no COD'; 
        } 

       } 
      } 
      else 
      { 
       $response['type'] = 'mage-error'; 
       $response['message'] = 'Please enter valid pincode'; 
      } 
     } catch (\Exception $e) { 
      $response['type'] = 'mage-error'; 
      $response['message'] = $e->getMessage(); 

     } 
     $this->getResponse()->setContent(json_encode($response)); 
    } 

} 
+0

你应该能够只使用''
打破行。例如:'='在选定的PIN码处可用的传送。
化学需氧量不可用。' – Miro

+0

完成..有很多米罗! – user3313626