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从前用的从未出现过错误。。。求助。。
展开
 我来答
zhaoapk
2014-01-27 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1609万
展开全部
// 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());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王庭茂
2014-01-27 · TA获得超过303个赞
知道答主
回答量:345
采纳率:100%
帮助的人:195万
展开全部
页面的编码要和PHP的编码一致。可以试试看用PHP新建这个文件看看文件名有没有乱码就知道了。
还有。。提醒您,这个PHP有严重的漏洞。(路径转义。。)
追问
嗯。这个地方后来调试过了,的确是乱码问题。中文处理可能还是需要编码解码处理一下。这个程序之前有点疏漏,整体的编码没有规格化过,所以这里有点乱了。。不过,谢谢您~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang313378172
2014-01-27
知道答主
回答量:57
采纳率:100%
帮助的人:24万
展开全部
中文滴不行!先加密一下,js加密encodeURI() 接收的php解密urldecode(),也许不用解,记不清了!你试试看吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式