我有这个脚本:
<script>
function selectModSetProd(prodId,setId,objControl){
function ifOK(r){
objControl.style.background="'"+r.color+"'";
}
function ifError(e){
alert('An error occurred when making the request: '+e.statusText);
}
function petition(prodId,setId,objControl){
var data = {
prod: prodId,
set: setId,
};
var post = $.post("sql.php", data, ifOK, 'json');
post.error(ifError);
}
var set = objControl.value;
if(confirm("Are you sure to start "+set+"?"))
petition(prodId,setId,objControl);
}
</script>
在laravel 4中,但我有这个错误:&#34;未捕获的TypeError:无法读取属性&#39; post&#39;未定义&#34;
有人可以帮我解决这个错误吗?
答案 0 :(得分:1)
用这个
包装你的脚本$(document).ready(function() {
});
$。在装入角度之前,帖子无效。
您的代码应为:
$(document).ready(function() {
function selectModSetProd(prodId,setId,objControl){
function ifOK(r){
objControl.style.background="'"+r.color+"'";
}
function ifError(e){
alert('An error occurred when making the request: '+e.statusText);
}
function petition(prodId,setId,objControl){
var data = {
prod: prodId,
set: setId,
};
var post = $.post("sql.php", data, ifOK, 'json');
post.error(ifError);
}
var set = objControl.value;
if(confirm("Are you sure to start "+set+"?"))
petition(prodId,setId,objControl);
}
});
答案 1 :(得分:1)
你最有可能收到帖子错误,因为$ .post试图转到你的laravel路由中没有定义的sql.php。
将您的脚本从sql.php更新为{{url()。&#39; / sql&#39;}}
并添加一条sql路由到laravel路由。
这是一个简单的解决方案,或者你可以创建一个更安静的方法来处理你的ajax路由和控制器。更多信息位于laravel.com
顺便说一句,你应该总是包装你的jquery,以确保它像我之前发布的那样加载。