2014-01-08 4 views
0

У меня проблема с моим кодом в ajax.предупреждение всегда всплывает с использованием ajax

AJAX

<script type="text/javascript"> 
var stopTime =0; 
var scoreCheck = function() 
    { 
     $.ajax({ 
     url: 'http://127.0.0.1/ProgVsProg/main/checkScoreRoundOne', 
     success:function(output){ 
     if(output !=' '){ 
      $('#maincontent1').html(output); 
      bootbox.alert("We have a winner", function(){  
      });  
     stopTime = setTimeout(scoreCheck, 1000); 
      } 
     else { 
      clearTimeout(stopTime); 
      } 
    } 
    }); 
} 
stopTime = setTimeout(scoreCheck,1000); 
</script> 

CONTROLLER

public function checkScoreRoundOne(){ 
$id = $this->session->userdata('userID'); 
$battleID = $this->lawmodel->getBattle($id); 
foreach($battleID as $row){ 
    $Rscore = $row->requestedScore; 
    $Cscore = $row->challengerScore; 
    if($Cscore == '1'){ 
     $rID = $this->lawmodel->getID($row->challengerID); 
     foreach($rID as $row){ 
      echo $row->username."Got the correct answer"; 
      } 
     } 
    else if($Rscore == '1'){ 
     $cID =$this->lawmodel->getID($row->requestedID); 
     foreach($cID as $row){ 
      echo $row->username."Got the correct answer"; 
      } 
     } 
    else 
     echo "Answer the question"; 
     } 
} 

Моя проблема Аякса будет всегда начеку, даже он не соответствует условию в мой контроллер. я не могу проверить мой проект, если он правильно или not..Im с использованием CodeIgniter ..

Im новой асинхронности PLSS помощь .. :( Отредактировано

Как я могу сделать предупреждение всплывающего окна только тогда, когда она удовлетворяла условию в мой контроллер? :( Как когда тревога Cscore == «1» будет всплывать ..

+0

, что вы пытаетесь сделать? это не очевидно из вашего вопроса. – Steve

+0

отредактирован уже..oror..im не очень конкретный .. :( – Zurreal

ответ

0

Если я получаю свой вопрос правильно, то эта линия

if(output !=' '){ 

в вашем запросе должно быть примерно

if(output != "Answer the question"){ 

Почему?
Если вы не встретите $Cscore == '1' или $Rscore == '1', вы вернете строку "Answer the question". И зная, что все, что вы вернетесь, будет содержанием переменной output, она никогда не будет только пространством ' '!

+0

Я даже попробовал это .. но это не сработало .. – Zurreal

0

Переместите код foreach в модель и вместо этого используйте return вместо echo.

Скажи: Модель:

public function getID($row->challengerID){ 
//some code 
if($Cscore || $Rscore){ 
    foreach($cID as $row){ 
     return $row->username."Got the correct answer"; 
     } 
    }else{ 
    return false; 
    } 
Смежные вопросы