喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [问题] 高手请进!!AJAX遇到的一个问题,关于返回数据写到列表中的。  
 
byqy
注册会员
Rank: 2



UID 83069
精华 0
积分 83
帖子 43
金钱 83 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-11-13
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
高手请进!!AJAX遇到的一个问题,关于返回数据写到列表中的。

如附件图,



我想做个程序,部门里面包含有各个小工序,每个部门的工序不一样。我又想进行异步传输的方式,这样我把AJAX做了。连接也可以了,返回的数据也正确了。就是不知道怎么把返回的一组数据写到表单项的列表项目中。因为列表的代码是<select>标签包含了<option>标签的。

我要实现的功能是。当我选择部门的时候,将会出现这个部门所属的工序。这个我在数据库中是有设置的。并且获取这个数据也是很容易的,请参看我下面的PHP判断代码。


不像将返回值写到文本框或者是<DIV>标签。

如:JS脚本中,返回值到INPUT和DIV的写法是:

document.getElementById("xxx").value = response[1];
document.getElementById("xxx").innerHTML = "<img src = '../images/check_right.gif'>"


写列表我就不知道了,因为要写2个数据。


我传递数据的表单都做好了,如下。

<select name="dp1" onChange="getCustomerInfo()">
              <?
            
while($row = @mysql_fetch_array($result))
            {
            
?>
              <option value="<? echo $row["dp_name"?>" selected><? echo $row[0?></option>
              <? }?>
            </select>
PHP判断程序也做好了.使用传递过去的数据查询数据库后,获得查询结果的数量以及循环将结果输出。JS脚本以 | 为分割进行赋值到数组当中。

<?php
$dp_shu 
trim($_GET["dpshu"]);
echo 
"1"."|";
@require_once(
"../inc/mysql_db.php");
$strstuff1 "select id,dp_name from {$tablename}_department where dp_shu = '$dp_shu'";
$result = @mysql_query($strstuff1,$myconn);
$num = @mysql_num_rows($result);
echo 
"$num"."|";
while(
$row = @mysql_fetch_array($result))
{
echo 
$row["dp_name"];
echo 
"|";
}
/////////
}
?>
下面看JS脚本

<?php
var request false;
try {
  
request = new XMLHttpRequest();
} catch (
trymicrosoft) {
  try {
    
request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (
othermicrosoft) {
    try {
      
request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (
failed) {
      
request false;
    }
  }
}

if (!
request)
{
  
alert("Error initializing XMLHttpRequest!");
}
//////////以上是检测浏览器版本,并且赋予方法
////以下是传递数据
 
function getCustomerInfo() {
     var 
dpid document.getElementById("dp1").value;
     var 
url "order_action.php?action=dpname&dpshu=" escape(dpid)+"&sid="Math.random();
     
request.open("GET"urltrue);
 
request.onreadystatechange updatePage;
     
request.send(null);
   }
   function 
updatePage() {
        
            if (
request.readyState == 4
            {
                
//////
    
var response request.responseText.split("|"); //获取值后以 | 为分割为数组,赋值给 response
       
if (request.status == 200
       {
           
////////
         
if(response[0] == "1")
       {
        
//document.getElementById("stuff1").value = response[1];
        //document.getElementById("stuff2").value = response[2];  //将值传递给表单元素
/*
         if(response[1] != "0")
        {
            var num = response[1];   //我最初的想法是将获取的数量,传递到JS脚本,再由循环将PHP脚本中输出的数据循环赋值给表单元素
            while(var i = 2;i<=num+2;i++)
            {
        document.getElementById("dp2").value = response[i];  //将值传递给DIV标签
        document.getElementById("stuffstat1").value = response[1];
            }
        }else{
        alert(request.responseText);   //出错,就弹出对话框
        }
       }else{
            alert(request.responseText);   //出错,就弹出对话框
       }
       /////////
       } else{
         alert("status is " + request.status);  //如果返回结果过程出错的提示
          }
     ////////
   }
   }
*/
?>
我最初的想法是将获取的数量,传递到JS脚本,再由循环将PHP脚本中输出的数据循环赋值给表单元素。但是又遇到列表是2个数据。都不知道怎么写了,被注释起来的是我写到一半的东西,我想不下去了。


不知道,有没人用过这个东西。我要怎么把输出的数据获取到值后,传递给表单元素。


 附件: 您所在的用户组无法下载或查看附件
2007-6-14 08:17 PM#1
查看资料  发短消息  顶部
 
迎风
高级会员
Rank: 4
一二三四五,上山打老鼠


UID 66573
精华 0
积分 843
帖子 931
金钱 843 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2005-9-11
状态 离线
[广告]: 代充Paypal帐号美元
option返回json或者xml,再让js createElement,之后appendChild进去,直接innerHTML在某些浏览器上会出错的



Azazazazazazazazazazazazazazazazazazazazazaz
2007-6-14 08:52 PM#2
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.027640 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP