请教php取到的数据集后,如何用到javascript

haifu23 2015-07-22 09:33:53
在练习那种php和HTML混合的页面,php从数据库取出数据后循环输出,那么链接的javascript页面如何获取那个每个数据相对应的id值,是用来栏目分类的
var fi= document.getElementById(lanmu).value;

php页面里
<input type="hidden" id="$fidm" name="$fidm" value="<?php echo $rows1['id'];?>">

alert只显示出fi ,不能显示相应value里的id值
...全文
432 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
indexroot 2015-07-27
  • 打赏
  • 举报
回复
引用 2 楼 haifu23 的回复:
另外想请教一下 javascript 调用document.getElementsById(lanmu).value; 再alert根本没反应 document.getElementsByName(lanmu),alert显示undefine 这是什么情况?
第一个问题:多了一个s document.getElementsById 第二个问题:lanmu要加引号,"lanmu",或者'lanmu' document.getElementById("lanmu") document.getElementsByName("lanmu") 后面的问题: 第一个,取不到值,一个是没有加引号,还有要在页面加载完以后再获取值 第二个,首先你要理解了书上程序的意思,不用模板的话,就是你自己把原来模板里面的模板变量替换成具体的值。 第三个,现在有很成熟的ajax封装,(比如可以用JQuery.ajax),不建议直接操作xmlhttprequest对象,需要处理各种细节,容易出错,而且还可能有浏览器兼容问题。
haifu23 2015-07-25
  • 打赏
  • 举报
回复
用了jquery可以取得值,用each遍历查询。问题现在每次点击某一个按键,刷新一次提示框自动弹出来,循环显示不同的值。本来想按哪一项旁边的键就弹出相对应的值,而不是自动提示,现在不知道怎么设置。 $("button").click(function(){ $("input:hidden").each(function(){ alert($(this).val())
dowebs 2015-07-23
  • 打赏
  • 举报
回复
AJAX+JSON,用JQUERY很方便,直接支持
xuzuning 2015-07-22
  • 打赏
  • 举报
回复
看不懂你打算做什么 你描述的东西,在你的代码中都不存在
haifu23 2015-07-22
  • 打赏
  • 举报
回复
说错了,是第二种可以
haifu23 2015-07-22
  • 打赏
  • 举报
回复
引用 1 楼 love01px 的回复:
页面还没有加载完,dom对象没有初始化, 所以document.getElementById(lanmu).value; 如果这里的lanmu不是js变量的话就加上引号document.getElementById(‘lanmu').value 建议把
window.load=function(){
     var fi= document.getElementById(lanmu).value;
}
或者用JQuery更方便:
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script>
$(function(){
alert( $('#lanmu').val());
});
</script>
第一种可以,但是原来用的javascript代码是否需要全部改成jquery, 加入jquery后,一点击 php页面,就弹出那个栏目的id值,问题是如何将id值转成javascript中的变量 试着这样写 $(function(){ var fid=$('#fi').val(); }); 反复弹出提示框,其实想用fid变量,放到url传出去
haifu23 2015-07-22
  • 打赏
  • 举报
回复
另外想请教一下 javascript 调用document.getElementsById(lanmu).value; 再alert根本没反应 document.getElementsByName(lanmu),alert显示undefine 这是什么情况?
indexroot 2015-07-22
  • 打赏
  • 举报
回复
页面还没有加载完,dom对象没有初始化, 所以document.getElementById(lanmu).value; 如果这里的lanmu不是js变量的话就加上引号document.getElementById(‘lanmu').value 建议把
window.load=function(){
     var fi= document.getElementById(lanmu).value;
}
或者用JQuery更方便:
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script>
$(function(){
alert( $('#lanmu').val());
});
</script>
haifu23 2015-07-22
  • 打赏
  • 举报
回复
showtype.php:用来显示form表单,表单里有一级和相对应的二级栏目名称 <link rel="stylesheet" href="table.css" charset="utf-8"></link> <script language="javascript" src="createxmlhttp.js"></script> <script language="javascript" src="jquery-1.7.2.min.js"></script> <script language="javascript" src="c.js"></script> <table width="300" border="0" align="center" cellpadding="0" cellspacing="0"> <?php include ('conn/conn.php'); $sqlf ="select * from tb_class where supid=0";//选择父类数据 $sqlz ="select * from tb_class where supid!=0"; $shujuf=mysql_query($sqlf); //$shujuz=mysql_query($sqlz); ?> <script> var fid ="<?php echo $rows1['id'];?>";//fid将传到changtype.js文件 </script> <form id="modi" name="modi" method="post" action="#" charset="utf8";> <tr> <td height="25" colspan="2" align="center" valign="middle" class="first">查看商品类别</td> </tr> <?php while ($rows1=mysql_fetch_array($shujuf)){ ?> <tr> <td height="25" align="center" valign="middle" class="left"><font size="2" color="#FF0000">父类:</font><input type="hidden" id="fi" name="fi" value="<?php echo $rows1['id'];?>" onblur=""></input><input id="moditype1" name="moditype1" type="text" class="shorttxt" value="<?php echo $rows1['name']?>" style="border-color:#996633;" /></td> <td height="25" align="center" valign="middle" class="right"><input id="modifyf" name="<?php echo $rows1['id'];?>" type="button" class="btn" value="修改" onclick="javascript:modifytype( )" style="border-color:#FFFFFF;"/><input id="delete" name="delete" type="button" value="删除" class="btn" onclick="javascript:delbigtype(fid)" style="border-color:#FFFFFF;"></td> </tr> <?php include ('conn/conn.php'); //$sqlz ="select * from tb_class where supid<>0"; $shujuz=mysql_query($sqlz); while ($rows2=mysql_fetch_array($shujuz)){ if($rows2['supid']==$rows1['id']){ ?> <tr> <td height="25" align="center" valign="middle" class="left" style="text-indent: 50px;" ><font size="2" color="#996600">子类:</font><input id="moditypez" name="moditypez" type="text" class="shorttxt" value="<?php echo $rows2['name'];?>" style="border-color:#996633;"/></td> <td height="25" align="center" valign="middle" class="right"><input id="modifyz" name="modifyz" type="button" value="修改" class="btn" onclick="javascript:modifytype(<?php echo $rows2['id'];?>)" style="border-color:#FFFFFF;"/><input id="delete" name="delete" type="button" value="删除" class="btn" onclick="javascript:delsmalltype(<?php echo $rows2['id']; ?>)" style="border-color:#FFFFFF;"></td> </tr> <?php }}} ?> </form> </table> javascript:用来检测上一个表单,设置xmlhttp的url,传到changtype.php function modifytype(key){ var nm = 'moditype1'; //var fid = document.getElementById(fi).value;//这样不行 //var fi='$fi';//这样不行 //var fid=$('#fi').val();//这样不行 var names = document.getElementById(nm).value; if(names == ""){ alert('请填写类别名称'); document.getElementById(nm).focus(); return false; } var url = "changetype.php?action=m&names="+names+"&key="+fid; xmlhttp.open("GET",url,true); xmlhttp.onreadystatechange = check; xmlhttp.send(null); } function delbigtype(key){ if(confirm("您要删除的是一级类,确定要删除吗")){ var url = "changetype.php?action=bd&key="+fid; xmlhttp.open("GET",url,true); xmlhttp.onreadystatechange = check; xmlhttp.send(null); }else{ return false; } } function delsmalltype(key){ if(confirm("确定要删除选中的项目吗?一旦删除将不能恢复!")){ var url = "changetype.php?action=sd&key="+fid; xmlhttp.open("GET",url,true); xmlhttp.onreadystatechange = check; xmlhttp.send(null); }else{ return false; } } function check(){ if(xmlhttp.readyState == 4){ if(xmlhttp.status == 200){ var msg = xmlhttp.responseText; if(msg == "1"){ alert('类名重复'); }else if(msg == "2"){ alert('操作失败!'); }else (msg == "3"){ alert('操作成功'); location='showtype.php'; } else if(msg == "4"){ alert('该大类有子类,不能删除'); }else (msg == "0"){ alert('未知错误!'+'\n错误代码:'+msg); } } } } 还有一个是changtype.php,用来修改添加栏目 <?php /********************************** $reback说明: 0、未知错误 1、类名重复 2、操作失败 3、操作成功 4、有二级分类 ***********************************/ $conn=mysql_connect("localhost","root",""); mysql_select_db("db_database22",$conn); mysql_query("set names utf8"); $action = $_GET['action'];//获取JavaScript文件中action $reback = '';//建立返回变量 if($action == 'm'){//如果动作值为m——修改栏目名称 $names = $_GET['names']; $key = $_GET['key']; $sql = "select * from tb_class where name = '$names'"; $rst = $conn->execute($sql);//执行选择数据库 if($rst->RecordCount() == 1){//如果选择成功 $reback = '1';//返回值为1 }else{ $updatesql = "select * from tb_class where id = ".$key; $updaterst = $conn->execute($updatesql); $upd = array(); $upd["id"] = $key; $upd["name"] = $names; $update = $conn->GetUpdateSQL($updaterst,$upd);//修改数据库 if($conn->execute($update) == false){//如果修改成功 $reback = '2';//返回值为2 }else{ $reback = '3';//返回值为3 } } }else if($action == 'sd'){//如果动作值为sd——删除子类栏目 $key = $_GET['key']; $delsql = "delete from tb_class where id = ".$key; if($conn->execute($delsql) == false){ $reback = '2'; }else{ $reback = '3'; } }else if($action == 'bd'){//如果动作值为bd——删除父类栏目 $key = $_GET['key']; $sql = "select * from tb_class where supid = ".$key; $rst = $conn->execute($sql); if($rst->RecordCount() >= 1){ $reback = '4'; }else{ $delsql = "delete from tb_class where id = ".$key; if($conn->execute($delsql) == false){ $reback = '2'; }else{ $reback = '3'; } } }else{ $reback = '0'; } echo $reback; ?> 基本是书上的例子,原来是用smarty模板引擎的,想改成不用smary的,发现直接改不行 现在有几个问题: 1、 document.getElementById(fi).value 取不到值,点修改没反应。在input隐藏域那块加个onbur后,弹出提示框,只有一个1 也就是“电子类"的数据表id ,刷新一次都出现这个,点击其他栏目的修改键,也是1,不显示这个栏目id.如果将那个inpu隐藏样式改为不隐藏,则可以显示所有栏目所对应id.说明php页面已经取到每个栏目的id值了,但javascript 页面取不到input隐藏域的value值,也就是<?php echo row1['id']?>的值。 2、第一个PHP文件,父类修改后面的原来是 onclick="javascript:modifytype({$key} ),这是什么意思,{$key}是smarty模板变量吧,这个应该怎么改? 3、changtype.js的function check() 不起作用怎么回事?类名重复等提示都没有

21,893

社区成员

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

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