0

我使用单个输入的表单使用 AJAX 发布到服务器。我计划获取输入的值,它是一个字符串,并检查该字符串是否已存在于数据库中。我会in_array(),如果字符串不存在,则将其插入数据库并回显 1 或 0 如果它是重复的,则返回 1 或 0 作为结果。

在我的 AJAX 中,我在成功时使用这个简单的函数,如果结果返回 1,我将使用 jQuery 显示成功消息,否则我将显示错误并退出。这是验证服务器端并且不通过返回 1 或 0 和exit();重复提交表单的好方法吗?

    success: function(result)
    {
      if(result == 1)
    { string was inserted to db }
    else
    { 
duplicate exists 
      exit();
      }

谢谢

4

2 回答 2

2

我会亲自在 php 中这样做,我返回一个 json 编码的身份数组,其中包含一些关于响应的信息。我通常会包含比需要更多的信息,用于调试目的和可能的未来更改。

if($results >= 1){
    $duplicate_exists = 'true';
}elseif($results < 1){
    $duplicate_exists = 'false';
};

$result = array(
    'exists' => $duplicate_exists ,
    'status' => $status,
    'time' => time()
    // etc
);

echo  json_encode($result)

然后将 json 解码为 javascript 中的对象:

success: function(result){
    result = jQuery.parseJSON(result)
// you can also use eval(result) , but it's much slower.
    if(result.exists == 'false'){
        // string was inserted to db
    }else{ 
        // duplicate exists 
        exit();
    }
于 2013-08-16T06:07:40.257 回答
0

您可以使用以下代码使用AJAXandJS发布和检索结果。

$.ajax({
        url: 'https://api.github.com/gists',
        type: 'POST',
        dataType: 'json',

        data: JSON.stringify(data)
      })
      .success( function(e) {

       res = jQuery.parseJSON(e);
       if(res.exists == 'false'){
        // string was inserted to db
       }
       else if(res.exists == 'true'){ 
        // duplicate exists 
        exit();
      }


      })
      .error( function(e) {

        //there was error

      });
于 2013-08-16T06:33:18.507 回答