ホームページ >バックエンド開発 >PHPチュートリアル >ドロップダウンリンクの問題
州と市の連携は、データベースから州と市の内容を取り出します。
該当する市が出てきたら、選択した値は元に戻ります。画面が再度更新されたため。
保存を保存する方法、または画面を更新しない方法はありますか?
以下はコードの一部です
<p class="Fld"><label class="label" for="state">省</label><span class="control"><select id="state" class="req1" name="Prefecture" onchange="getCitySubmit();"> <!--{html_options options=$provinceList}--> </select></span></p><p class="Fld"><label class="label" for="city">市</label><span class="control"><select id="city" class="req1" name="City" > <!--{html_options options=$cityList}--> </select></span></p>
//初期,绑定省 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 を参照:
<?php#action.phpif(isset($_GET['id'])){ $sql="select * from table where id=".$_GET['id']; $res=mysql_query($sql); if(!$res) die("SQL: {$sql} <br>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 name='menu2'>"; foreach($arrMenu as $item2){ echo "<option value='{$item2['id']}'>{$item2['name']}</option>"; } echo "</select>"; }}?>
<form name="frm"><select name="s1" onChange="redirec(this.value)"> <option selected>请选择</option> <option value="1">天文</option> <option value="2">地理</option> <option value="3">算术</option></select><div id="s2"></div></form><script>$("select").live("change",function(){ $.ajax({ type: "GET", url: "action.php", data: "id="+$(this).val(), cache: false, success: function(text){ $("#show").append(text); } }); });
これは ajax に関するものです。
こんにちは。
91252958f448624d9a6748cd45c3b1e5
8ea7fb4e44412266256ac5e45e1fadf5
州を選択する必要があります。市区町村のIDを渡します。
こんにちは。
91252958f448624d9a6748cd45c3b1e5
8ea7fb4e44412266256ac5e45e1fadf5
州を選択する必要があります。市区町村のIDを渡します。
この乱雑な日本語はどこのウェブサイトにありますか?日本の?日本では都道府県と市区町村を使用します。
ajaxの使用をお勧めします。これは、毎回更新する必要がなく、高速です。
f720869d23af52ce1c39e7481dae07e8 bd5b0de4b21147b22d8a5407a3ceaf1b都道府県?4afa15d3069109ac30911f04c56f3338 {html_options options=$res.m_states selected=$res.mst_state_id|default:""}
18bb6ffaf0152bbe49cd8a3620346341 2fdb9fcf438edbd6ee083e96b8d14ac7
c986c61b154fce356e3e3d71761bbbb7都市4afa15d3069109ac30911f04c56f3338
{html_options options=$res.m_city selected=$res.mst_city_id|default:""}
18bb6ffaf0152bbe49cd8a3620346341
function Linkage(obj,id) {
var param = { };
param.mst_state_id = obj;
$.ajax({
var param = {}; URL : "php"
、データ: $.param(param)
、dateType: "xml"
、成功 : function( xml) {
var selects = $("select[id="+id+"]");
$(selects)[0].length=0;
$(selects)[0]=new Option("都市",0");
var name = $("name", ); .text(); }
}) ;
}
url : "php" を受け入れるphpは次のとおりです。パスに注意してください
この php の最終出力
$str = "";
foreach ($m_state2 as $key => $val) {
$str .= "c58a1130350e5f417b7f5c3a9765ab7e14d88aa77a00a1a1ed3a93c99f397b0a" . $key . "42c6f2d00583d752e4637b73e8eb93088a11bc632ea32a57b3e3693c7987c420" . $val . "df406f776eecbaf16b62325323196f147b4e8fde939f6cc0cdc4a607ba87deb8";
}
header("Content-Type:text/xml; charset=utf-8");
echo '0ae7aaf6dccf32153ccf7b5fa0dc31961d029f6197b5a3eb8a3fdf0a088ddf55'.mb_convert_encoding( $str, "utf-8").'< ;/data>';
あなたの汚い日本語はどんなウェブサイトですか?日本の?日本では都道府県と市区町村を使用します。
ajaxの使用をお勧めします。これは、毎回更新する必要がなく、高速です。
f720869d23af52ce1c39e7481dae07e8 bd5b0de4b21147b22d8a5407a3ceaf1b都道府県?4afa15d3069109ac30911f04c56f3338 {html...
まあ、これは便利なので試してみる価値があります~~
参考 Ajax:
4c2e6a16c8f7a7ad6ff4b77dbd7ec714エラー:".mysql_error()....
ajax我不懂,所以请问
$("select").live("change",function(){
$.ajax({
type: "GET",
url: "action.php",
data: "id="+$(this).val(),
cache: false,
success: function(text){
$("#show").append(text);
}
});
});
这段代码是写在什么地方的?
$_GET['id']的id是省的id?
redirec(this.value) 这个方法里面写些什么?
你这乱七八糟的日文是什么网站?日本的? 日本用都道府县 市区町村。
建议用ajax做。这样速度快点 不用每次刷新。
0884a1d2723a673a7bacf0c0dbd7c381
302223510126f57919da8bd0aae4999d都道府?4afa15d3069109ac30911f04c56f3338
{html……
你这乱七八糟的日文是什么网站?日本的? 日本用都道府县 市区町村。
建议用ajax做。这样速度快点 不用每次刷新。
0884a1d2723a673a7bacf0c0dbd7c381
302223510126f57919da8bd0aae4999d都道府?4afa15d3069109ac30911f04c56f3338
{html……
这个0884a1d2723a673a7bacf0c0dbd7c381
mst_state_id 是你的select的属性。这个随便起名字,只要能统一就行。改成你的state也可以。
引用 2 楼 的回复:
参考Ajax:
PHP code
316284b0acec2f46dfe787260be1a79bError:".mysq……
<form name="frm"><select name="s1" onChange="record(this.value)"> <option selected>请选择</option> <option value="1">天文</option> <option value="2">地理</option> <option value="3">算术</option></select><div id="show"></div></form><!--Ajax属于js应用,当然要放在script标签中,两种写法jQuery和JavaScript--><script>//Ajax-jquery,必须加载jQuery库:jquery_1.4.2.jsdocument.write("<script src='jquery_1.4.2.js'></script>");$("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); } } }</script>
引用 8 楼 的回复:
引用 2 楼 的回复:
参考Ajax:
PHP code
3b919920348c2076033754d4f98c02ea2cacc6d41bbb37262a98f745aa00fbf0
写在head头里就行。
这个能测试,至于能懂多少就看你的了,先会用,再慢慢琢磨
<?php/* Created on [2012-7-4] Author[Newton] */#Ajax_select.php 此php和html要分为两个页面if(isset($_GET['id'])){ #$arrMenu数组可以是数据库查询的结果数组等任意二维数组 $arrMenu=array( array('id'=>3,'name'=>'Tom'), array('id'=>2,'name'=>'Lily'), array('id'=>1,'name'=>'Smith'), ); echo "<select name='menu2'>"; foreach($arrMenu as $item2){ echo "<option value='{$item2['id']}'"; if($item2['id']==$_GET['id']) echo "selected"; echo " >{$item2['name']}</option>"; } echo "</select>";}?>
<html> <head> <title>测试Variable Modifiers</title> </head> <body><form name="frm"><select name="s1" onChange="record(this.value)"> <option selected>请选择</option> <option value="1">天文</option> <option value="2">地理</option> <option value="3">算术</option></select><div id="show"></div></form><script language='javascript'>//Ajaxvar xmlHttp; function createXMLHttpRequest() { if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } } function record(id){ createXMLHttpRequest(); url = "Ajax_select.php?id="+id+"&ran="+Math.random(); method = "GET"; xmlHttp.open(method,url,true); xmlHttp.onreadystatechange = show; xmlHttp.send(null); } function show(){ if (xmlHttp.readyState == 4){ if (xmlHttp.status == 200){ var text = xmlHttp.responseText; document.getElementById("show").innerHTML = text; }else { alert("response error code:"+xmlHttp.status); } } }</script> </body></html>
$_GET または $_getJson を使用して処理できます。これは便利です
これは、どれだけ理解するかによってテストできます。最初に使用してから、ゆっくり考えてください。
PHP コード
/ * [2012-7-4] 著者[Newton] に作成 */
#Ajax_select.php この php と html は 2 ページに分割する必要があります
if(isset($_GET['id']) ){
#$arrMenu 配列には、データベース クエリの結果配列などの任意の 2 次元配列を指定できます
$arrMenu=arr...
は警告を報告します、オブジェクトを指定してください。
パラメータが間違って渡されたのかと思いましたが、後でパラメータを削除しても同じエラーが報告されることがわかりました
皆さんありがとうございます、完了しました
警告が報告されます。
パラメーターが間違って渡されたと思っていましたが、後でパラメーターを削除しても同じエラーが報告されることがわかりました