js的ajax用post传值和直接form表单post传值的区别?为什么form的可以用,js的不行。而且已经成功传过去了 5
这是表单的<formaction="deleteBookMark.php"method="post"><inputtype="test"name="book"value=...
这是表单的
<form action="deleteBookMark.php" method="post">
<input type="test" name="book" value=""/>
<input type="test" name="bmPage" value=""/>
<input type="submit" value="go"/>
</form>
这是jquery的
var url = "deleteBookMark.php";
var bmPage = $(this).attr("id");
var book = $("#title").text();
$.post(url,{book:book,bmPage:bmPage},function(res){
alert(res);
});
这是目标php的
$book = $_POST['book'];
$bmPage = $_POST['bmPage'];
$arr = file("bookMarks/".$book);
$i = 0;
foreach ($arr as $page){
if(trim($page) == $bmPage){
break;
}
$i++;
}
unset($arr[$i]);
file_put_contents("bookMarks/".$book, $arr);
下面就是在某个txt文件里找到并删除一行
用form表单形式传值,完全没问题。
换成js用ajax异步来写,回调函数response里也显示成功传值,可是到那边就是没有反应。返回一个打开文件失败的错误。传值里有中文,可是显示值什么的好像都没乱码。。js的ajax从前用的从未出现过错误。。。求助。。 展开
<form action="deleteBookMark.php" method="post">
<input type="test" name="book" value=""/>
<input type="test" name="bmPage" value=""/>
<input type="submit" value="go"/>
</form>
这是jquery的
var url = "deleteBookMark.php";
var bmPage = $(this).attr("id");
var book = $("#title").text();
$.post(url,{book:book,bmPage:bmPage},function(res){
alert(res);
});
这是目标php的
$book = $_POST['book'];
$bmPage = $_POST['bmPage'];
$arr = file("bookMarks/".$book);
$i = 0;
foreach ($arr as $page){
if(trim($page) == $bmPage){
break;
}
$i++;
}
unset($arr[$i]);
file_put_contents("bookMarks/".$book, $arr);
下面就是在某个txt文件里找到并删除一行
用form表单形式传值,完全没问题。
换成js用ajax异步来写,回调函数response里也显示成功传值,可是到那边就是没有反应。返回一个打开文件失败的错误。传值里有中文,可是显示值什么的好像都没乱码。。js的ajax从前用的从未出现过错误。。。求助。。 展开
3个回答
展开全部
// form提交都是把input的name和value组合起来发过去的
var bmPage = $(":text[name='bmPage']").val();
var book = $(":text[name='book']").val();
追问
唔。。谢谢您,我后来改了一下,发现用text取到的值两边有空格,用trim()处理一下就行了。貌似还是编码的问题。。中文不好处理
追答
// encodeURIComponent编译
var bmPage = encodeURIComponent($(":text[name='bmPage']").val());
var book = encodeURIComponent($(":text[name='book']").val());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
页面的编码要和PHP的编码一致。可以试试看用PHP新建这个文件看看文件名有没有乱码就知道了。
还有。。提醒您,这个PHP有严重的漏洞。(路径转义。。)
还有。。提醒您,这个PHP有严重的漏洞。(路径转义。。)
追问
嗯。这个地方后来调试过了,的确是乱码问题。中文处理可能还是需要编码解码处理一下。这个程序之前有点疏漏,整体的编码没有规格化过,所以这里有点乱了。。不过,谢谢您~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中文滴不行!先加密一下,js加密encodeURI() 接收的php解密urldecode(),也许不用解,记不清了!你试试看吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询