>  기사  >  백엔드 개발  >  请教php取到的数据集后,如何用到javascript

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

WBOY
WBOY원래의
2016-06-23 13:30:12959검색

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

php页面里
">

alert只显示出fi ,不能显示相应value里的id值


回复讨论(解决方案)

页面还没有加载完,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 调用document.getElementsById(lanmu).value; 再alert根本没反应
document.getElementsByName(lanmu),alert显示undefine
这是什么情况?

页面还没有加载完,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传出去

说错了,是第二种可以

看不懂你打算做什么
你描述的东西,在你的代码中都不存在

showtype.php:用来显示form表单,表单里有一级和相对应的二级栏目名称


<script></script>
<script></script>
<script></script>


   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> <br /> var fid ="<?php echo $rows1['id'];?>";//fid将传到changtype.js文件 <br /> </script>








?>


  
      
      
    


   include ('conn/conn.php');
//$sqlz ="select * from tb_class where supid0";
$shujuz=mysql_query($sqlz);
 while ($rows2=mysql_fetch_array($shujuz)){
 if($rows2['supid']==$rows1['id']){

?>

 
      
        
    
   
}}}
?>

查看商品类别
父类:"  onblur="">" style="border-color:#996633;" /> " type="button" class="btn" value="修改" onclick="javascript:modifytype(



 )" style="border-color:#FFFFFF;"/>
子类:" style="border-color:#996633;"/> )" style="border-color:#FFFFFF;"/>)" style="border-color:#FFFFFF;">


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,用来修改添加栏目

/**********************************
$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值,也就是的值。

2、第一个PHP文件,父类修改后面的原来是 onclick="javascript:modifytype({$key} ),这是什么意思,{$key}是smarty模板变量吧,这个应该怎么改?
3、changtype.js的function check() 不起作用怎么回事?类名重复等提示都没有

AJAX+JSON,用JQUERY很方便,直接支持

用了jquery可以取得值,用each遍历查询。问题现在每次点击某一个按键,刷新一次提示框自动弹出来,循环显示不同的值。本来想按哪一项旁边的键就弹出相对应的值,而不是自动提示,现在不知道怎么设置。
 $("button").click(function(){
    $("input:hidden").each(function(){
      alert($(this).val())

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:yii多图片上传다음 기사:php访问控制