Ajax结果依赖于PHP结果

时间:2013-10-25 04:43:06

标签: javascript php jquery ajax

我有一个PHP函数,如果结果是> 0则会给出警报响应但是如果结果为0我将收到空警报

我该怎么办?

 function urlCheck()
{
    $website_id = $this->input->post('website_id');
    $post_title            = $this->input->post('post_title');

    $urlCheck = $this->page_model->pageURLCheck($post_title,  $moviesparx_website_id);

    if($urlCheck > 0)
    {
        echo "This page name already exists";
    }
}

jQuery Ajax:

 $.ajax({
            url:url,
            data:data ,

            type: 'POST',
            success: function (resp) {
                alert(resp);
            },
            error: function (resp) {
                console.log(data);
            }
        });

5 个答案:

答案 0 :(得分:1)

这是因为只有在结果>时才发送回复。 0.如果你的结果是< = 0,则发出另一个回应。所以写下如下的其他案例。

 function urlCheck()
{
    $website_id = $this->input->post('website_id');
    $post_title            = $this->input->post('post_title');

    $urlCheck = $this->page_model->pageURLCheck($post_title,  $moviesparx_website_id);

    if($urlCheck > 0)
    {
        echo 1;
    }
    else{
       echo 0;
    }
}

的Ajax

 $.ajax({
            url:url,
            data:data ,

            type: 'POST',
            success: function (resp) {
                if(resp){
                  alert('This page name already exists');
                }
            },
            error: function (resp) {
                console.log(data);
            }
        });

答案 1 :(得分:1)

试试这个:

$.ajax({
            url:url,
            data:data ,

            type: 'POST',
            success: function (resp) {
        if(resp == '')
            //do something
        else
            alert(resp);
            }

        });

答案 2 :(得分:0)

您可以在客户端进行另一项检查:

服务器

<?php

if ($urlCheck > 0) {
   echo '1 - This page name already exists.';
} else {
   echo '0 - New page name.';
}
?>

客户端:

// success handler
success: function(resp) {
   var realResp = resp.split('-');
   if (realResp[0] == '1') {
      alert(realResp[1]);
   }
}

答案 3 :(得分:0)

尝试这样的事情......

if($urlCheck > 0) {
    echo "This page name already exists";
} else {
    echo -1;
}

客户 -

success: function (resp) {
    if(resp != -1) {    
        alert(resp);
    }
}

答案 4 :(得分:0)

这是一个完全有效的例子。注意:因为你正在使用一个我必须即兴创作的课程

<?php

  function urlCheck ($urlCheck)
  {
      if ($urlCheck > 0) echo "This page name already exists"; exit;
  } 

  if (isSet ($_POST ['send']))
  {
       urlCheck (1);
  }
?>


 <!DOCTYPE html>
  <html>
   <head>
    <title>blah</title>
    <meta charset="utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
    $(document).ready (function (){
         $.ajax({
                url: "index.php",
                data: {send: "data"},
                type: 'POST',
            }).fail (function () {
                console.log ("failed");
            }).done (function (data){ //dont use success
                alert (data);
            });
     });
    </script>
    </head>
    <body>
    </body>
   </html>

这就是我说不使用成功的原因:

  

弃用通知

     

jqXHR.success(),jqXHR.error()和jqXHR.complete()回调   jQuery 1.5中引入的方法在jQuery 1.8中已弃用。至   为最终删除代码做好准备,使用jqXHR.done(),   jqXHR.fail()和jqXHR.always()代替。