2015-08-10 5 views
0

CS-Cart ajax работает нормально, я также получаю ответ, но как я могу использовать этот ответ с html/js в моем представлении (checkout.tpl).CS-Cart Ajax ответ на div

Controller (передний конец): send_sms.php

use Tygh\Registry; 
use Services_Twilio; 
use Tygh\Ajax; 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

if ($mode == 'send_sms') { 

    $status = 1; 
    $response = array(
     'status' =>$status, 
     'data' =>'Hello World', 
    ); 

    if($status == 1) { 
     fn_set_notification('N', fn_get_lang_var('success'), fn_get_lang_var('sms_sent'), true); 
    } else { 
     fn_set_notification('E', fn_get_lang_var('warning'), fn_get_lang_var('sms_failed'), true); 

    } 

    $val=json_encode($response); 

    Registry::get('ajax')->assign('result', $val); 

} 
exit; 
} 

Посмотреть checkout.tpl (дизайн/темы/отзывчивый/шаблоны/просмотров/фотографии/checkout.tpl)

<div id="result"> 
 
    <!-- id="result" --> 
 
    <!-- result --> 
 
</div> 
 
<h2>Verify your number</h2> 
 

 
<form class="cm-ajax" action="index.php" method="post" name="send_sms"> 
 

 

 
    <input type="hidden" name="result_ids" value="result" /> 
 

 
    <div class="form-control send_sms_block"> 
 
     <input type="text" name="country_code" id="country_code" disabled value="+92"/> 
 
     <input type="text" name="carrier_code" id="carrier_code" disabled value="300"/> 
 
     <i class="ty-icon-down-micro open_cr"></i> 
 
     <input type="text" name="phone" id="phone"/> 
 

 
     <div class="carrier_list hidden"> 
 
      <ul> 
 
       <li>301</li> 
 
       <li>302</li> 
 
      </ul> 
 
     </div> 
 
    </div> 
 
    <div class="clearfix"></div> 
 
    <input class="ty-btn ty-btn__big" id="send_sms" type="submit" value="Send Pin" name="dispatch[send_sms.send_sms]"/> 
 
</form>

ответ

1

Пожалуйста, попробуйте следующее решение:

PHP файл:

use Tygh\Registry; 
use Services_Twilio; 
use Tygh\Ajax; 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

if ($mode == 'send_sms') { 

    $status = 1; 
    $response = array(
     'status' =>$status, 
     'data' =>'Hello World', 
    ); 

    if($status == 1) { 
     fn_set_notification('N', fn_get_lang_var('success'), fn_get_lang_var('sms_sent'), true); 
    } else { 
     fn_set_notification('E', fn_get_lang_var('warning'), fn_get_lang_var('sms_failed'), true); 

    } 

    $val=json_encode($response); 

    Registry::get('view')->assign('result', $val); 
    Registry::get('view')->display('views/path/to/tpl/file.tpl'); 
} 
exit; 
} 

TPL файл:

<div id="result"> 
 
{if $result}{$result}{/if} 
 
<!--result--></div> 
 

 
<h2>Verify your number</h2> 
 

 
<form class="cm-ajax" action="index.php" method="post" name="send_sms"> 
 

 

 
    <input type="hidden" name="result_ids" value="result" /> 
 

 
    <div class="form-control send_sms_block"> 
 
     <input type="text" name="country_code" id="country_code" disabled value="+92"/> 
 
     <input type="text" name="carrier_code" id="carrier_code" disabled value="300"/> 
 
     <i class="ty-icon-down-micro open_cr"></i> 
 
     <input type="text" name="phone" id="phone"/> 
 

 
     <div class="carrier_list hidden"> 
 
      <ul> 
 
       <li>301</li> 
 
       <li>302</li> 
 
      </ul> 
 
     </div> 
 
    </div> 
 
    <div class="clearfix"></div> 
 
    <input class="ty-btn ty-btn__big" id="send_sms" type="submit" value="Send Pin" name="dispatch[send_sms.send_sms]"/> 
 
</form>

0

Пожалуйста, замените на send_sms.php

$val=json_encode($response); 
Registry::get('ajax')->assign('result', $val); 

с

echo '<div id="result">'.json_encode($response).'</div>';

+1

Лучший вариант в CS-Cart контексте 'реестра :: получить ('Аякса') -> 'результат' assignHtml (. (пустой ($ _ REQUEST ['дополнительный_id'])? '': '_'. $ _REQUEST ['дополнительный_id']), json_encode ($ response)); ' Он просто распечатает контент в моем #result div, но предположим, как я могу оповещать или прочую вещь через js после завершения запроса ajax. –

Смежные вопросы