警告总是使用ajax弹出

时间:2014-01-08 11:54:53

标签: javascript php ajax codeigniter

我对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";
        }
}

我的问题是,即使它不符合控制器中的条件,ajax也会始终发出警报。 我不能测试我的项目是否正确..我正在使用codeigniter ..

我是新的ajax plss帮助...... :( 的被修改

如果警报弹出符合我控制器中的条件,我该怎么办? :( 就像当Cscore =='1'时会弹出警告..

2 个答案:

答案 0 :(得分:0)

如果我的问题正确,那么这一行

if(output !=' '){
您的请求中的

应该是

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

为什么?
如果您未遇到$Cscore == '1'$Rscore == '1',则会返回字符串"Answer the question"。并且知道您返回的内容将是output变量的内容,它永远不会只是一个空格' '

答案 1 :(得分: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;
  }