我在products
列的name
表中检查产品的实时名称时遇到问题。我需要帮助。我只收到了checking...
条消息,但没有OK
或名称not available message
。在我的查询中有些错误
我的阿贾克斯
<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>
答案 0 :(得分: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
。