州と市の連携は、データベースから州と市の内容を取り出します。
該当する市が出てきたら、選択した値は元に戻ります。画面が再度更新されたため。
保存を保存する方法、または画面を更新しない方法はありますか?
以下はコードの一部です
<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 に関するものです。
こんにちは。
州を選択する必要があります。市区町村のIDを渡します。
こんにちは。
州を選択する必要があります。市区町村のIDを渡します。
この乱雑な日本語はどこのウェブサイトにありますか?日本の?日本では都道府県と市区町村を使用します。
ajaxの使用をお勧めします。これは、毎回更新する必要がなく、高速です。
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 .= "
}
header("Content-Type:text/xml; charset=utf-8");
echo ''.mb_convert_encoding( $str, "utf-8").'< ;/data>';
あなたの汚い日本語はどんなウェブサイトですか?日本の?日本では都道府県と市区町村を使用します。
ajaxの使用をお勧めします。これは、毎回更新する必要がなく、高速です。
#action.php
if(isset($_GET['id']) ) {
$sql="select * from table where id=".$_GET['id'];
$res=mysql_query($sql);
if(!$res) die("SQL: {$sql} < ;br>エラー:".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做。这样速度快点 不用每次刷新。
你这乱七八糟的日文是什么网站?日本的? 日本用都道府县 市区町村。
建议用ajax做。这样速度快点 不用每次刷新。
这个
引用 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}
Error:".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
#action.php
if(isset($_GET['id'])){
$sql="select * from table where id=".$_GET['id'];
$res=mysql_query($sql);
if(!$res) die("SQL: {$sql} ……
你想用ajax就要加载jquery文件的。
需要那个文件 要把它加载到你的html文件里面 写对路径。
写在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...
は警告を報告します、オブジェクトを指定してください。
パラメータが間違って渡されたのかと思いましたが、後でパラメータを削除しても同じエラーが報告されることがわかりました
皆さんありがとうございます、完了しました
警告が報告されます。
パラメーターが間違って渡されたと思っていましたが、後でパラメーターを削除しても同じエラーが報告されることがわかりました