省和市的联动,省市的内容都是从数据库里取出来的,
现在是选择了省,对应的市出来之后,省又回到最初的值,选择的值保存不住,因为画面又刷新了。
有什么办法能保存住省,或者不用画面刷新?
下面是部分代码
<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({
type : "POST"
, url : " php"
, data : $.param(param)
, dateType : "xml"
, success : function(xml) {
var selects = $("select[id="+id+"]");
$(selects)[0].length=0;
$(selects)[0].options[0]=new Option("市区町村","0");
$("category", xml).each(function(){
var id = $("id", this).text();
var name = $("name", this).text();
$(selects)[0].options.add(new Option(name, id));
});
}
});
}
url : "php" 这里是接受都道府县的id的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").'';
exit;
你这乱七八糟的日文是什么网站?日本的? 日本用都道府县 市区町村。
建议用ajax做。这样速度快点 不用每次刷新。
恩恩这个有用 值得一试~~
参考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:".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做。这样速度快点 不用每次刷新。
“param.mst_state_id = obj;” 里的“mst_state_id”是个属性还是什么?
这个
引用 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} ……
我只是想联动一下,怎么会这么麻烦呢,我都看不懂啊,拷进去也改不对。。。
“jquery_1.4.2.js”是不是还需要这个文件,还是只要有这句话就可以了?
好痛苦啊
你想用ajax就要加载jquery文件的。
需要那个文件 要把它加载到你的html文件里面 写对路径。
<script></script>
写在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 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值。。
会报一个警告,オブジェクトを指定してください。
我以为是参数传错了,后来发现把参数去掉也报这个错
谢谢各位,搞定了
会报一个警告,オブジェクトを指定してください。
我以为是参数传错了,后来发现把参数去掉也报这个错
出这个问题是什么情况?怎么解决啊,楼主

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP中使用clone关键字创建对象副本,并通过\_\_clone魔法方法定制克隆行为。1.使用clone关键字进行浅拷贝,克隆对象的属性但不克隆对象属性内的对象。2.通过\_\_clone方法可以深拷贝嵌套对象,避免浅拷贝问题。3.注意避免克隆中的循环引用和性能问题,优化克隆操作以提高效率。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

HTTP缓存头的关键玩家包括Cache-Control、ETag和Last-Modified。1.Cache-Control用于控制缓存策略,示例:Cache-Control:max-age=3600,public。2.ETag通过唯一标识符验证资源变化,示例:ETag:"686897696a7c876b7e"。3.Last-Modified指示资源最后修改时间,示例:Last-Modified:Wed,21Oct201507:28:00GMT。

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

WebStorm Mac版
好用的JavaScript开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

禅工作室 13.0.1
功能强大的PHP集成开发环境