js和PHP前台交互相关问题

<tr><td><spanstyle="color:red;font-weight:bold;">选择分区性质</span><selectname="nat"onchan... <tr>
<td><span style="color:red; font-weight:bold;">选择分区性质</span>
<select name="nat" onchange="changeselect2(this.value)">
<option value="cn" selected>国内服务器</OPTION>
<option value="fr" selected>国外服务器</OPTION>
</select>
</td>
</tr>
<tr>
<td><span style="color:red; font-weight:bold;">选择游戏分区</span>
<select name="area">
<?php
foreach($this->area as $a){
if($a->gid==$u->id){
if($a->nat==123){
?>
<option value="<?php echo $a->value; ?>" selected><?php echo $a->content; ?></OPTION>
<?php
}
}
}
?>
</select>
</td>

如上表单的一部分,分区信息里面有分区描述分区提交值分区性质(分区性质就是上面对应的国内国外服务器)等等,我希望在点国内国外服务器的同时,分区信息也要刷新,只显示对应分区性质的下拉列表,注释:$a->nat==123是筛选语句,$a->nat是数据库中的分区性质,123是js得到的表单分区性质,如果各位大大有更好的思路,这句可以无视了。
恳请各位大大帮忙,小弟JS超菜,只是PHP熟练,查了很多资料,个人认为思路应该是1、选择国内国外;2、php得到国内国外;3、刷新并重新筛选area。好像有说要Ajax的,有说在js里写runat="server"就可以的,迷糊中,只剩15分了,全部贡献,各位大大别嫌弃,我一直在努力挣分的,好心有好报,求解决
感谢两位网友的回答,特别是热心网友的匿名回答我看懂了,是CMS写的,不过还是有一些没懂,比如加载的old.js,我去试试,如果可以的话结贴了,呵呵。还有diyly童鞋,JS,Ajax以前我也学过的,只是这几年没怎么用过都还给老师了,那个汗...我上学的时候学的是java,阴差阳错现在竟然搞起了PHP,我觉得学程序不是一蹴而就的,遇到的问题多了困难多了,就会越来越了解越熟练,活学活用触类旁通,不是简单的看两眼学一会就能变成自己的东西,提这个问题我是报着头痛医头脚痛医脚的心态...,总之感谢帮忙,我继续努力
展开
 我来答
匿名用户
推荐于2016-01-13
展开全部
用ajax 抄了以前的一段代码,你看看吧

select name="classname" id="classname" style="WIDTH: 130px" onchange="getCategory(this.value);">
<script language="javascript" src="/script/script_jquery.old.js"></script>
<script language="javascript" type="text/javascript">var j= jQuery.noConflict(true);</script>
<option value="0">--请选择--</option>
<!--{loop $_SGLOBAL['category'] $key $value}-->
<option value="{$key}">{$value}</option>
<!--{/loop}-->
</select>
<select name="classname2" style="WIDTH: 130px" id="classname2">
<option value="0">--请选择--</option>
</select>

js:
//获取二级分类
function getCategory(classid){

j.get("./xin/xin_ajax_category.php",{classid:classid},function(data){

var results=eval("("+data+")");
var list = document.getElementById("classname2");
list.options.length = 0;
list.options.add(new Option("--请选择--","0"));
for (var i = 0; i < results.length; i++) {
list.options.add(new Option(results[i].childname,results[i].childid)); //text ,value
}

});
}
xin_ajax_category.php:
<?php
include_once('../common.php');
$classid=intval($_REQUEST['classid']);
//flag
if(!empty($classid)){
$category_arr="";
$sql="SELECT b.childid,b.childname FROM `xin_works_category_class` a, `xin_works_category_child` b WHERE a.classid=b.pid and a.classid=$classid order by a.classid ,b.childid";
$handle=$_SGLOBAL['db']->query($sql);
while($value=$_SGLOBAL['db']->fetch_array($handle)){

$value['childname']=convertToUTF8($value['childname']);
$category_arr[]=$value;

unset($value);

}
unset($handle);
//print_r($category_arr);
echo json_encode($category_arr);
}
?>
agtim62
2010-12-23 · TA获得超过268个赞
知道答主
回答量:264
采纳率:0%
帮助的人:191万
展开全部
如果你只是玩玩,最好别学ExtJS,它只针对于特定任务下的开发方案,全oo式。现用现查手册就行了。

建议你先玩玩国产的EdoJS,算是山寨版的ExtJS。

毕竟中文的doc看起来容易理解,等你把Edo玩明白了,Ext自然不在话下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mll82
2010-12-22 · 超过26用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:48.7万
展开全部
分2种情况:(我只给你思路,如果需要我改代码,请给出你那边的全部相关代码!)

1:如果分区信息不走php和数据库,那么全部用JS就可以控制。

2:如果如上所写走php和数据库(例:$a->nat==123之类),那么请使用ajax实现(即通过AJAX去操作PHP和数据库),可以达到不用提交本页就可以实现动态同时改变刷新的效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ee5a1df
2010-12-21
知道答主
回答量:17
采纳率:0%
帮助的人:24万
展开全部
这里确实是要AJAX的,不过,使用JS框架JQUERY搞AJAX简单,如果你是写原生的JS的话,各种浏览器要兼容,蛮不容易的!
对于你这个程序的话,当选择了服务器后,通过JS,请求一些东西,到一个PHP程序,则个PHP程序的功能就是从数据库里查询你想要的东西,同时返回数据,而AJAX回自动的接受这个数据,再将这些数据通过JS写入你想要的容器内!,你看下JQUERY的教程!学PHP,不学JS,还是干不了事,HTML+DIV+CSS+JS+PHP+MYSQL,只要是搞WEB开发,这几个基础!
我现在做WEB前端工程师!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式