急````帮帮忙````联动菜单的增删改查不知道怎么实现

zhujbing 2008-03-19 11:00:45
急````帮帮忙````联动菜单的增删改查不知道怎么实现

现在有个项目,里面有一个三级和四级联动菜单要实现增删改查,小弟学php不深```

我从网络上下载了一个三级联动省地市ajax,

现在只能实现插入,无法修改,因为我无法获取到已选的值.

希望有哪位大侠伸援助之手```帮帮小弟```

帮忙改改,下面有附件
...全文
180 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxs_2008 2008-03-31
  • 打赏
  • 举报
回复
你把data.php
中的数据连接密码改为你自已的,仍要用那个页!
fxs_2008 2008-03-31
  • 打赏
  • 举报
回复
我在IE下测试是可以的
这个只判定,如果有GET相关变量,就进行第一次初显(显示三个),其他的不变,仍可联动
只是在初显时要三个全显示,如果你重新选择,则是重新联动的
如果你还想显示原始的三个,可以刷新一下
zhujbing 2008-03-29
  • 打赏
  • 举报
回复
fxs_2008 这个是可以获到原来已选择值,
但获取到之后,失去了联动菜单的功能,
又无法像原来那样选择别的城市进行修改,
麻再帮帮忙```
能不能在获取到原来已选的值的同时,
还能像原为那样还有联动菜单的功能,
选择别的城市进行修改
fxs_2008 2008-03-26
  • 打赏
  • 举报
回复
这个例子还较常用的,作为作业练习还是不错的!
我写的这个只是能正确显示,级别低!

strike_un有好的方法吗?
通常这类情况我们用json 等类型数据做中间层来处理.客户端直接解析,然后发到服务器端修改数据库,然后刷资源文件!如果有例子的话可以学习一下!
fxs_2008 2008-03-26
  • 打赏
  • 举报
回复
其实就是第一次要回显所有原始数据,其他的不变!
fxs_2008 2008-03-26
  • 打赏
  • 举报
回复
测试可以吗?
$dprovince="140000"; //山西省
$dcity='140200'; //大同市
$darea='140227';

如果你的数据取出来的不是代码而是名称,要转换成代码才行!
striker_un 2008-03-26
  • 打赏
  • 举报
回复
搞定了没.
没搞定我可以来掺和掺和.
通常这类情况我们用json 等类型数据做中间层来处理.客户端直接解析,然后发到服务器端修改数据库,然后刷资源文件.

比较适合数据量不大的级联应用.
fxs_2008 2008-03-25
  • 打赏
  • 举报
回复
测试下下,看看显示下拉列表的逻辑,没简化,我测试可以


<?php
//根据id取得相关变量
/*$id=$_GET['id'];
$conn=mysql_connect("localhost","root","passport");
mysql_select_db("novel");
mysql_query("set names 'utf8'");
$sql="select * from table where id='$id'";
mysql_connect($sql,$conn);
while($row=mysql_fetch_row($result)){
$dprovince=$row['provincecode']; //山西省
$dcity=$row['citycode']; //大同市
$darea=$row['areacode'];
}*/

//娴嬭瘯鍙橀噺涓?缁勮褰曟樉绀?
//测试值

$dprovince="140000"; //山西省
$dcity='140200'; //大同市
$darea='140227'; //大同县


//if($id)


?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var xmlHttp;
var requestType="";
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function queryCity(citycode){
createXMLHttpRequest();
type="city";
var url="data.php?provincecode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function queryArea(citycode){
createXMLHttpRequest();
type="area";
var url="data.php?citycode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function handleStateChange(){
if(xmlHttp.readystate==4){
if(xmlHttp.status==200){
if(type=="city"){
showcity();
}else if(type="area"){
showarea();
}
}
}
}

function showcity(){
document.getElementById("city").innerHTML=xmlHttp.responseText;
document.getElementById("area").innerHTML="";
}
function showarea(){
document.getElementById("area").innerHTML=xmlHttp.responseText;
}
</script>
</head>
<body>
<?PHP


$conn=mysql_connect("localhost","root","passport");
mysql_select_db("novel");
mysql_query("set names 'utf8'");


$sql="select * from province";
$result=mysql_query($sql);
echo "<from id='form1'>";

echo "<select id='province' onchange='queryCity(this.options[this.selectedIndex].value)'>";
//濡傛灉鎻愬彇鍑烘潵鐨勭渷鍊煎瓨鍦?
if($dprovince){
echo "<option value='-1' >璇烽?夋嫨鐪佷唤</option>";
}else{
echo "<option value='-1' selected>璇烽?夋嫨鐪佷唤</option>";
}

while($row=mysql_fetch_row($result)){
if($row[1]==$dprovince){
echo "<option value='$row[1]' selected>$row[2]</option>";
}else{
echo "<option value='$row[1]'>$row[2]</option>";
}


}

echo "</select>";

echo '</span>';
//鍩庡競浠g爜
echo "<span id='city'>";


echo "<select onchange='queryArea(this.options[this.selectedIndex].value)'>";
if($dprovince){
$sql="select * from city where provincecode=$dprovince";
$result=mysql_query($sql,$conn);
if($dcity){
echo "<option value='-1' >璇烽?夋嫨鍩庡競</option>";

}else{
echo "<option value='-1' selected>璇烽?夋嫨鍩庡競</option>";
}

while($row=mysql_fetch_row($result)){
if($row[1]==$dcity){
echo "<option value='$row[1]' selected>$row[2]</option>";
}else{
echo "<option value='$row[1]'>$row[2]</option>";
}
}
}
echo "</select>";

echo '</span>';


//鏄剧ず鍦板尯

echo "<span id='area'>";

if($dprovince && $dcity){
$sql="select * from area where citycode=$dcity";
$result=mysql_query($sql,$conn);
echo "<select>";
if($darea){
echo "<option value='-1' >璇烽?夋嫨鍘垮尯</option>";
}else{
echo "<option value='-1' selected>璇烽?夋嫨鍘垮尯</option>";
}

while($row=mysql_fetch_row($result)){
if($row[1]==$darea){
echo "<option value='$row[1]' selected>$row[2]</option>";
}else{
echo "<option value='$row[1]'>$row[2]</option>";
}
}
}
echo '</span>';

echo "</form>";

?>
</body>
</html>
zhujbing 2008-03-25
  • 打赏
  • 举报
回复
你好,dada20042030,下面这个帖子里面有附件,
http://topic.csdn.net/u/20080319/10/1163a757-f29c-4555-8def-1acd120c7eb4.html
这个帖子也是我发的``
上次你有帮我改过一次``,但不是我想要的那种结果.
麻烦你再帮帮忙```谢谢```
剑心永远OK 2008-03-24
  • 打赏
  • 举报
回复
难度就是技巧不懂..
hy_lihuan 2008-03-22
  • 打赏
  • 举报
回复
只能告诉你一个思路;
你进入修改页面前先绑定第一个下拉,后面的和点选些的语句是一样的;
真的看不出来有什么难度
zhujbing 2008-03-21
  • 打赏
  • 举报
回复

这不是我想要的`麻烦 dada20042030 再帮忙看看,下面有下例子,我在那里面说的很清楚,

http://www.51chinajz.com/test/index.html

希望能抽点时间再帮小弟看看.只要能帮忙实现这个功能``

三个贴一共280分,我马上结贴.

剑心永远OK 2008-03-21
  • 打赏
  • 举报
回复
不知道这个符合你的要求不。。try again
index.php

<?php
if($_GET['act']=='insert')
{
echo "one-value:".$_POST['province']."<br>";
echo "two-value:".$_POST['city']."<br>";
echo "three-value".$_POST['area']."<br>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var xmlHttp;
var requestType="";
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function queryCity(citycode){
createXMLHttpRequest();
type="city";
var url="data.php?provincecode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function queryArea(citycode){
createXMLHttpRequest();
type="area";
var url="data.php?citycode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function handleStateChange(){
if(xmlHttp.readystate==4){
if(xmlHttp.status==200){
if(type=="city"){
showcity();
}else if(type="area"){
showarea();
}
}
}
}

function showcity(){
var return_value=xmlHttp.responseText.split('|');
document.getElementById("city").length=0;
for(var i=0;i<return_value.length;i++)
{
new_option=return_value[i].split(',');
option_text=new_option[0];
option_value=new_option[1];
document.getElementById("city").options.add(new Option(option_value,option_text));
}

}
function showarea(){
document.getElementById("area").length=0;
var return_value=xmlHttp.responseText.split('|');
for(var i=0;i<return_value.length;i++)
{
new_option=return_value[i].split(',');
option_text=new_option[0];
option_value=new_option[1];
document.getElementById("area").options.add(new Option(option_value,option_text));
}
}
function get_value(action)
{
/*
获取到数据以后就用ajax去插入和更新。要不然表单提交以后就会刷新的了。
*/
var provinces=document.form1.province.value;
var citys=document.form1.city.value;
var areas=document.form1.area.value;
alert("进行的动作是:"+action);
alert("省ID:"+provinces);
alert("市ID:"+citys);
alert("区域ID:"+areas);
}
</script>
</head>
<body>
<?php
$conn=mysql_connect("localhost","root","2260375");
mysql_select_db("novel");
mysql_query("set names 'utf8'");
$sql="select * from province";
$result=mysql_query($sql);
?>
<form action="?act=insert" method="POST" name="form1" onsubmit="set_value();">
<select onchange='queryCity(this.options[this.selectedIndex].value)' id='province' name="province">
<?php
while($row=mysql_fetch_row($result)){
echo "<option value='$row[1]'>$row[2]</option>\n";
}
?>
</select>
<select id="city" onchange='queryArea(this.options[this.selectedIndex].value)' name="city"></select>
<select id="area" name="area"></select>
<input type="button" onclick="get_value('insert')" value="insert">
<input type="button" onclick="get_value('update')" value="update">
</form>
</body>
</html>



data.php

<?
$conn=mysql_connect("localhost","root","2260375");
mysql_select_db("novel");
mysql_query("set names 'utf8'");
if($provincecode!=""&&$provincecode!=650000&&$provincecode!=710000&&$provincecode!=810000&&$provincecode!=820000&&$provincecode!=110000&&$provincecode!=120000&&$provincecode!=310000&&$provincecode!=500000){
$sql="select * from city where provincecode=$provincecode";
$result=mysql_query($sql);
while($row=mysql_fetch_row($result)){
$str.=$row[1].",".$row[2]."|";
}
echo $str;
}


if($citycode!=""){
$sql="select * from area where citycode=$citycode";
$result=mysql_query($sql);
while($row=mysql_fetch_row($result)){
$str.=$row[1].",".$row[2]."|";
}
echo $str;
}
?>
zhujbing 2008-03-19
  • 打赏
  • 举报
回复

我的意思是````

比如现在选择的是:福建省-福州-长乐
将数据存入数据库里面了是没问题的```
如果要改变现在已选的值,
就要获取显示原来已选的:福建省-福州-长乐
再进行更改
但我无法将已选值,附值到菜单中,
麻烦 dada20042030 再帮帮忙```谢谢
剑心永远OK 2008-03-19
  • 打赏
  • 举报
回复
已经帮你修改到可以获取到值了..剩下的就自己做把..数据库名改回你自己的数据库名..
文件内容如下:
index.php

<?php
if($_GET['act']=='insert')
{
echo "one-value:".$_POST['province_one']."<br>";
echo "two-value:".$_POST['province_two']."<br>";
echo "three-value".$_POST['province_three']."<br>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var xmlHttp;
var requestType="";
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function queryCity(citycode){
createXMLHttpRequest();
type="city";
var url="data.php?provincecode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function queryArea(citycode){
createXMLHttpRequest();
type="area";
var url="data.php?citycode="+citycode;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}

function handleStateChange(){
if(xmlHttp.readystate==4){
if(xmlHttp.status==200){
if(type=="city"){
showcity();
}else if(type="area"){
showarea();
}
}
}
}

function showcity(){
document.getElementById("city").innerHTML=xmlHttp.responseText;
document.getElementById("area").innerHTML="";
}
function showarea(){
document.getElementById("area").innerHTML=xmlHttp.responseText;
}
</script>
</head>
<body>
<?php
$conn=mysql_connect("localhost","root","2260375");
mysql_select_db("novel");
mysql_query("set names 'utf8'");
$sql="select * from province";
$result=mysql_query($sql);
echo "<form name='form1' action='?act=insert' method='post'>\n";
echo "<select id='province' name='province_one' onchange='queryCity(this.options[this.selectedIndex].value)'>\n";
echo "<option value='-1' selected>请?择省份</option>\n";
while($row=mysql_fetch_row($result)){
echo "<option value='$row[1]'>$row[2]</option>\n";
}
echo "</select>\n";
echo "<span id='city'></span>\n";
echo "<span id='area'></span>\n";
echo "<input type='submit'>";
echo "</form>\n";
?>
</body>
</html>




Data.php

<?
$conn=mysql_connect("localhost","root","2260375");
mysql_select_db("novel");
mysql_query("set names 'utf8'");
if($provincecode!=""&&$provincecode!=650000&&$provincecode!=710000&&$provincecode!=810000&&$provincecode!=820000&&$provincecode!=110000&&$provincecode!=120000&&$provincecode!=310000&&$provincecode!=500000){
$sql="select * from city where provincecode=$provincecode";
$result=mysql_query($sql);
echo "<select onchange='queryArea(this.options[this.selectedIndex].value)' name='province_two'>\n";
echo "<option value='-1' selected>ffsdfsf</option>\n";
while($row=mysql_fetch_row($result)){
echo "<option value='$row[1]'>$row[2]</option>\n";
}
echo "</select>\n";
}


if($citycode!=""){
$sql="select * from area where citycode=$citycode";
$result=mysql_query($sql);
echo "<select name='province_three'>\n";
echo "<option value='-1' selected>fsdfsfs</option>\n";
while($row=mysql_fetch_row($result)){
echo "<option value='$row[1]'>$row[2]</option>\n";
}
echo "</select>\n";
}
?>
cuidenghong123 2008-03-19
  • 打赏
  • 举报
回复
http://www.dwww.cn/News/2007-9/200793165615507.shtml
看一看 或许有帮助
剑心永远OK 2008-03-19
  • 打赏
  • 举报
回复
附件下不了。。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧