2015-11-23 5 views
0

На странице входа в систему я включать PHP-файл, который выглядит следующим образомAjax вызова не дает ответа

JS

<script> 

var APP_URL = '<?= APP_URL?>'; 
function migrate(value){ 
    if(value==1) { 
     $j.ajax({ 
      type: 'POST', 
      url: APP_URL+"corporate/secApi", 
      data : {migration:1}, 
      success: function (rs) { 
       console.log(rs); 
        alert("Migration Completed!\nEnjoy the new Goal feature"); 
        $j("#fulldiv").remove(); 

      }, 
      failure: function() { 
       alert("call to secApi failed!"); 
      } 
     }); 
    }else{ 
     $j("#fulldiv").remove(); 
    } 
} 
</script> 

HTML

<div id="fulldiv"> 

<div id="dialog"> 
    <div id="dialog-bg"> 
     <div id="dialog-title">New Feature</div> 
     <div id="dialog-description">EMarketeer has added new feature known as Goals, enabling this feature will allow you to set your own goals and keep the track of progress.</div> 
     <div id="dialog-description" style="padding-top: 50px;">Would you like to Migrate to use new Goals feature?</div> 

     <!-- Buttons, both options close the window in this demo --> 
     <div id="dialog-buttons"> 
      <a href="javascript:migrate(1)" class="large green box">YES, do it now!</a> 
      <a href="javascript:migrate(0)" class="large red box">NO, maybe later</a> 
     </div> 

    </div> 
</div> 

PHP

if(isset($_POST['migration'])){ 
    $response = false; 
    if($_POST['migration']==1) { 
     $apiMgr = new SecureAPIClient((int)$_SESSION['id_user'], (int)$_SESSION['id_user_sub'], $ALLOWED_RESOURCES); 
     $response = $apiMgr->migrateAccount($_SESSION['id_user']); 
     if($response==true) 
      echo 1; 
     return; 
    } 
} 

Вызов делается, я могу видеть, управление приходит secApi.php после завершения ничего утешается в журнал. Он работал до этого, но только когда i echo'd 1 вместо истинного и в успешном разделе ajax-вызова у меня была проверка if (rs == 1) dosomething, но теперь это даже не работает. Я просто не могу найти причину.

Любое предложение пожалуйста? Я делаю что-то неправильно?

+2

Почему вы устанавливаете идентификаторы ко всему? Почему бы не использовать классы? Кроме того, у вас не должно быть более одного элемента с тем же идентификатором на той же странице. –

+1

'отказ' Что это такое ??? –

ответ

0

Вы должны эхо вместо возврата в PHP, чтобы получить это значение на стороне клиента.

<?php 
    $response = false; 
    if(isset($_POST['migration'])){ 

     if($_POST['migration']==1) { 
      $apiMgr = new SecureAPIClient((int)$_SESSION['id_user'], (int)$_SESSION['id_user_sub'], $ALLOWED_RESOURCES); 
      $response = $apiMgr->migrateAccount($_SESSION['id_user']); 
     } 
    } 
    echo $response; 
?> 
+0

Существует больше логики, которая перекликается с некоторыми другими значениями. Я выполняю этот фрагмент кода в определенном состоянии. Вот почему я возвращался после эха 1. Это означало бы, что я должен использовать exit, когда хочу остановить оставшуюся часть страницы, которая будет выполнена? – Shaonline

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