php通过smarty传递给html的变量该如何存储

无天 2011-08-11 08:45:47
在html中,有php通过smarty传递过来的一个变量,比如用户的性别(sex),如果是男性我会用js去做一些操作。如果是女性则会去做另一些操作。一般的写法如下:
<script type='text/javascript' >
<{ if $sex == 'male'}>
var xxxx=123;
do_some_thing(); //可能操作比较复杂
<{ else }>
var yyyy=456;
do_other_thing(); //可能操作比较复杂
<{ /if }>
</script>

但是在html里面直接写js很影响页面的加载。
不知道有没有别的办法去执行那段js。而且那段js里有smarty变量,对js的修改和维护带来的不少的麻烦。
想过把sex这个变量用<input type='hidden' id=user_sex value='<{$sex}>' /> 来存储,然后需要的时候再document.getElementById('user_sex'): 。但是哪一天这个sex变量名称变了,或者取消了,那还得去搜索出input元素,然后把它删掉,这样觉得很别扭。
不知道大牛们有啥好的方法。
...全文
167 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2011-08-12
  • 打赏
  • 举报
回复
没有你这么写的!写上两大段相似的代码

传递php变量值到js变量,由js控制流程
骄傲青蛙 2011-08-11
  • 打赏
  • 举报
回复
一句话, 判断sex变量是否存在, 存在则加载相关的有所的js.
骄傲青蛙 2011-08-11
  • 打赏
  • 举报
回复
真是的, 把二行掉一下就行, 红色换成蓝色的, 这样$sex变量不存在, 或没了, js也不加载运行了,
sex存在, js存, sex不存在, js不存在.


<script type='text/javascript' >
<{ if $sex == 'male'}>

<{ if $sex == 'male'}>
<script type='text/javascript' >


var xxxx=123;
do_some_thing(); //可能操作比较复杂
<{ else }>
var yyyy=456;
do_other_thing(); //可能操作比较复杂

<{ /if }>
</script>

</script>
<{ /if }>
PIGer920 2011-08-11
  • 打赏
  • 举报
回复
在html里面直接写js很影响页面的加载?
是影响美观吧

如果哪一天这个sex变量名称变了,你的代码当然要改。不管用什么你也得改代码啊
一起混吧 2011-08-11
  • 打赏
  • 举报
回复
1. 执行js不外乎就两种,你这是一种,还有一种写在js文件中,再包含进来。加载速度当然是第一种快。,对于修改一点也不麻烦,你的js代码很多吗?
2. 隐藏域你干嘛要把它删掉啊,还有什么叫需要的时候啊,,你担心的太多了。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧