0

我有一个 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({
            url:url,
            data:data ,

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

5 回答 5

1

那是因为您仅在结果 > 0 时才发送响应。如果您的结果 <= 0,则发送另一个响应。因此请编写如下所示的 else 案例。

 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({
            url:url,
            data:data ,

            type: 'POST',
            success: function (resp) {
                if(resp){
                  alert('This page name already exists');
                }
            },
            error: function (resp) {
                console.log(data);
            }
        });
于 2013-10-25T04:48:06.927 回答
1

试试这个:

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

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

        });
于 2013-10-25T04:52:06.120 回答
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]);
   }
}
于 2013-10-25T04:49:05.540 回答
0

试试这样的..

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

客户 -

success: function (resp) {
    if(resp != -1) {    
        alert(resp);
    }
}
于 2013-10-25T04:52:24.653 回答
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>

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

弃用通知

jQuery 1.5 中引入的 jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调方法自 jQuery 1.8 起已弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

于 2013-10-25T05:17:20.930 回答