【问题标题】:Live name Availability check with Ajax and Laravel使用 Ajax 和 Laravel 进行实时名称可用性检查
【发布时间】:2015-11-10 19:30:00
【问题描述】:

我无法从name 列的products 表中检查产品的实时名称。我需要帮助。我只收到了checking... 消息,但没有收到OK 或名称not available message。我的查询有问题吗

我的 ajax

<SCRIPT type="text/javascript">
$(document).ready(function(){

$("#name").change(function() { 

var usrN = $("#name").val();

if(usrN.length >= 4)
{
$("#status").html('<img src="images/loadingAnimation.gif"> Checking ...');

    $.ajax({  
    type: "POST",  
     url :"{{action('Product\ProductController@Check')}}", 
    data: "name="+ usrN, 
    success: function(msg){  

   $("#status").ajaxComplete(function(event, request, settings){ 

    if(msg == 'OK')
    { 
        $("#name").removeClass('object_error'); 
        $("#name").addClass("object_ok");
        $(this).html('<img src="images/success.png" align="absmiddle"> OK<');
    }  
    else  
    {  
        $("#name").removeClass('object_ok'); 
        $("#name").addClass("object_error");
        $(this).html(msg);
    }  

   });

 } 

  }); 

}
else
    {
    $("#status").html('<font color="red" style="margin-left:125px;">something went wrong <strong></strong> .</font>');
    $("#name").removeClass('object_ok'); 
    $("#name").addClass("object_error");
    }

});

});


</SCRIPT>

我的控制器

 public function Check(Request $request)
    {

    $product= new Product;  
    $name = $request->get('name');  
    $product->name = $request->get('name');


    $query = \DB::table('products')->select('name')
             ->where('name','=',$name)
             ->first();
        if($query)
        {
            echo"name not available!";
        }
        echo"name available!";
    $product->save();

我的表格

<input type="text" name="name" id="name" style="margin-top:35px;" />
<span id="status"></span>

【问题讨论】:

    标签: javascript php jquery ajax laravel-5


    【解决方案1】:

    您正在客户网站上检查以下内容:

    if(msg == 'OK')
    

    但是您从未从服务器发送该字符串并且还使用return 而不是echo。以下可能会解决您的问题,但它仍然不是我会使用或推荐的东西,但无论如何:

    // In your check method
    if($query)
    {
        return 'error';
    }
    
    $product->save();
    
    return 'ok'; // ok is lower case so use if(msg == 'ok')
    

    不要使用echo。请先阅读Laravel 文档以及check this 并了解如何使用JSON 数据类型作为响应。


    标记时始终使用精确的version

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多