js 中smarty的应用。。。。

functionfirm(vid){//删除alert(vid);if(confirm("你确定要删除该菜名???")){location.href="<{spUrlc=... function firm(vid){//删除
alert(vid);
if(confirm("你确定要删除该菜名???")){
location.href="<{spUrl c=vmanage a=deletev vid="+vid+"}>";
}else{
return false;
}
} 这是一个我自己写的简单的跳转函数,为什么alert(vid) 显示是vid的具体值,而在我后面接受vid的值,只是等于 “vid”字符串,而不是参数的值
展开
 我来答
百度网友b127745f2
2012-08-03 · TA获得超过1923个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:206万
展开全部
很明显, 你还没有了解程序执行的顺序.

smarty运行在服务端,JS运行在客服端. 所以smarty先执行,而JS后执行

那么smarty先执行的情况下,vid 这个是JS的变量,在这个时候是没有值的,
smarty当然把把作为string来处理了.
追问
我解决了。。。你说对了,只是没写出解决方案。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MarsCode
2024-08-21 广告
在北京引力弹弓科技有限公司,JavaScript是我们技术栈中不可或缺的一环。它赋予了我们网页动态交互的能力,使我们能够开发出既美观又高效的前端应用。我们利用JavaScript优化用户体验,通过异步请求、DOM操作、以及现代前端框架(如R... 点击进入详情页
本回答由MarsCode提供
blogforsite
2012-08-03 · TA获得超过170个赞
知道小有建树答主
回答量:189
采纳率:100%
帮助的人:202万
展开全部
<{spUrl c=vmanage a=deletev vid="+vid+"}>
是smarty模板标签,相当于执行php

location.href="<{spUrl c=vmanage a=deletev vid="+vid+"}>";
这行换成下面三行

var delurl="<{spUrl c=vmanage a=deletev vid=1}>";
delurl=delurl.replace('vid=1','vid='+vid); //这句替换,看下面的说明
location.href=delurl;

说明:上面的替换是在url为正常的?a=b方式,如果是重写或其它,像/a/b这样的方式的话,使用这句 delurl=delurl.replace('/vid/1','/vid/'+vid);
追问
我把函数改成:
function firm(vid){//删除
alert(vid);
if(confirm("你确定要删除该菜名???")){
var deurl = "";
deurl.replace('/vid/1','/vid/'+vid);
location.href=deurl;
}else{
return false;
}
}
就行不行,还有我换成delurl=delurl.replace('vid=1','vid='+vid);
也都是直接吧vid当成字符串味 1 传到后台。。 我感觉你的方法本质上跟字符串拼接没啥区别
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式