当前位置:Gxlcms > PHP教程 > 下拉联动问题

下拉联动问题

时间:2021-07-01 10:21:17 帮助过:4人阅读

省和市的联动,省市的内容都是从数据库里取出来的,
现在是选择了省,对应的市出来之后,省又回到最初的值,选择的值保存不住,因为画面又刷新了。
有什么办法能保存住省,或者不用画面刷新?

下面是部分代码


//初期,绑定省 public function action()    {    	$retArr=array();    	//省取得    	$retArr=$this->qaModel->getProvince();    	if(count($retArr)>0)    	{    		foreach ($retArr as $key => $i)    		{    		   $provinceList[$i["PROVINCE_KEY"]] = $i["PROVINCE_NAME"];    		}    	}    	//取得したデ?タを?定      	$this->_smarty->assign("provinceList", $provinceList);    	// お?い合わせ画面を表示する 这步显示画面submit.html    	$this->_smarty->render($this->_language."/submit");    }//联动,绑定市 public function cityAction()    {    	$province_key=$this->_context->query("province_key", "");    	$this->log->info($province_key);    	$retArr=array();    	//省取得    	$retArr=$this->qaModel->getCity($province_key);    	if(count($retArr)>0)    	{    		foreach ($retArr as $key => $i)    		{    			$cityLis[$i["CITY_KEY"]] = $i["CITY_NAME"];    		}    	}    	//取得したデ?タを?定    	$this->_smarty->assign("cityList", $cityLis);    	// お?い合わせ画面を表示する  这步再回到初期,这样的话省就重新绑定了    	$this->action();    }


回复讨论(解决方案)

日文? 不刷新很定要ajax传值呀

参考Ajax:

Error:".mysql_error());	if(mysql_affected_rows() > 0){		$arrMenu=array();		while($rows = mysql_fetch_array(MYSQL_ASSOC)){			array_push($arrMenu,$rows);		}	}	mysql_close();	if(!empty($arrMenu)){		echo "";	}}?>

");$("select").live("change",function(){			$.ajax({				  type: "GET",				  url: "action.php",				  data: "id="+$(this).val(), //这里的id获取的是select选中的value值				  cache: false,				  success: function(text){				    $("#show").append(text);				  }			});		});//Ajax-javascriptvar xmlHttp;	function createXMLHttpRequest() {		if(window.XMLHttpRequest) {			xmlHttp = new XMLHttpRequest();		} else if (window.ActiveXObject) {			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");		}	}	function record(id){  //这里的id获取的是select选中的value值		createXMLHttpRequest();		url = "action.php?id="+id+"&ran="+Math.random();		method = "GET";		xmlHttp.open(method,url,true);		xmlHttp.onreadystatechange = show;  //利用回调函数返回php处理后的数据		xmlHttp.send(null);	}	function show(){		if (xmlHttp.readyState == 4){			if (xmlHttp.status == 200){				var text = xmlHttp.responseText;				document.getElementById("show").innerHTML = text;  //这里将php返回的数据写入html中id=show的标签中			}else {				alert("response error code:"+xmlHttp.status);			}		}	}

引用 8 楼 的回复:

引用 2 楼 的回复:

参考Ajax:
PHP code
#action.php
if(isset($_GET['id'])){
$sql="select * from table where id=".$_GET['id'];
$res=mysql_query($sql);
if(!$res) die("SQL: {$sql} ……




我只是想联动一下,怎么会这么麻烦呢,我都看不懂啊,拷进去也改不对。。。

“jquery_1.4.2.js”是不是还需要这个文件,还是只要有这句话就可以了?

好痛苦啊

你想用ajax就要加载jquery文件的。
需要那个文件 要把它加载到你的html文件里面 写对路径。


写在head头里就行。

这个能测试,至于能懂多少就看你的了,先会用,再慢慢琢磨

3,'name'=>'Tom'),		array('id'=>2,'name'=>'Lily'),		array('id'=>1,'name'=>'Smith'),	);	echo "";}?>

   测试Variable Modifiers   

你可以使用$_GET,或者$_getJson来处理,方便

这个能测试,至于能懂多少就看你的了,先会用,再慢慢琢磨
PHP code

/* Created on [2012-7-4] Author[Newton] */
#Ajax_select.php 此php和html要分为两个页面
if(isset($_GET['id'])){
#$arrMenu数组可以是数据库查询的结果数组等任意二维数组
$arrMenu=arr……


onChange="record(this.value)" 取不到value值。。

会报一个警告,オブジェクトを指定してください。
我以为是参数传错了,后来发现把参数去掉也报这个错

谢谢各位,搞定了

会报一个警告,オブジェクトを指定してください。
我以为是参数传错了,后来发现把参数去掉也报这个错


出这个问题是什么情况?怎么解决啊,楼主

人气教程排行