首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎么从checkbox和下拉list中读取信息,并用于查询数据库呢

2013-08-10 
如何从checkbox和下拉list中读取信息,并用于查询数据库呢?我是新手,可能会问到对这里大牛来说简单的基础问

如何从checkbox和下拉list中读取信息,并用于查询数据库呢?
我是新手,可能会问到对这里大牛来说简单的基础问题,请多多赐教。
问题是:如下图一个简单页面,怎么从checkbox和下拉list中读取信息,并用于查询数据库呢
该页面第一行是一个可选择过去时间的日期选择表(计划用datepicker),下面是我从数据库读取的各个记录并用表格的形式列出。每条记录后面都有一个<input type="checkbox">这样的一个checkbox。在该表的下方,我预计设定一个按钮(按钮没有画出,预计采用<input type="button" value="change">的形式,针对下面实现的功能是不是有更好的button实现代码?)。
我想实现的功能是:点击两个checkbox,并且限定只能点击两个checkbox(否则跳出一个alert的警告窗),再点击按钮,改变这两个记录的位置(序号不变)。预想的功能过程是:点击按钮后,此时把该记录的No.的数值和date下拉表中的日期变量传递出来,据此查询数据库,并对调这两个记录的序号,再在前台列表展现出。

我的主要困难是:在一个完整的页面上肯定有多个类似Car 1的列表,这意味着有很多checkbox。如何从被点击checkbox的这条记录中读取No.数值,并且获取下拉表中的日期数值,并用于查询数据库?查询数据库的后台程序我应该能做到,其实也很简单。但前台如何从页面抓取这两个数据,对我是个问题。

请大牛们多多帮忙。因为小弟刚接触js\ajax\jquery,一直很头疼,所以小弟在这里恳求:如果可以的话,能否给出核心问题的关键代码片段或者指出类似网上案例,这样方便小弟临摹。
万分感谢啊!
[解决办法]
<input type="checkbox" name=??? value=???>
name 用于服务器端识别对象
value 应为数据库中的唯一识别标识
[解决办法]
我最近正好做一个东西  跟你上次跟我提到的需求还有这次的问题有点接近...

不过显示效果还没做好,操作也略复杂.......就不给你看demo了

你说的这个 我大致看了下  是不是说 有不定数量的值要传给后台,而且name啊什么的可能都不同

我是这样做的(直接拿我的代码给你看吧,,,


//向数据库提交添加完的数据
function queding_item(item_id,obj){
var shuxing_str = "";
$.each($("input.shuxing_col"),function(i ,n ){
var shuxing_col = $(n).attr("shuxing_col");
var num = $(n).val();
if(i == 0){
shuxing_str += '{';
}
shuxing_str += '"'+shuxing_col+'":"'+num+'"';
if(i < $("input.shuxing_col").length -1){
shuxing_str += ',';
}else{
shuxing_str += '}';
}
});
$.ajax({
type:"post",
url:"select.php",
data:{
shuxing_str:shuxing_str,
item_id:item_id,
action:"queding_item"
},
success:function(msg){
if(msg > 0){
xuanding(msg);
}
}
});
}


我获得所有符合要求的元素,即input并且class为shuxing_col
然后用$.each()来循环这个符合要求的元素的集合

然后将需要的值拼成一个json字符串(可以转化成数组的那种json字符串

比如你可以用name做键名,value做键值

传递给PHP 

PHP拿到后,用json_decode转化成数组

循环这个数组然后进行查询..




extract($_POST);
//用户自己添加属性提交
if($_POST && $_POST['action']=="queding_item"){
$shuxingArr = json_decode($shuxing_str,true);//将字符串转化为数组
$ziduan_str = "item_id";//要插入的字段
$ziduanzhi_str = "'".$item_id."'";//要插入的字段的值
if($shuxingArr){
$i = 1;
$ziduan_str .= ",";//要插入的字段
$ziduanzhi_str .= ",";//要插入的字段的值
foreach($shuxingArr as $key=>$each){
$ziduan_str .= $key;
$ziduanzhi_str .= "'".$each."'";
if($i < count($shuxingArr)){
$ziduan_str .= ",";
$ziduanzhi_str .= ",";
}
$i ++;
}
}
$sql = "insert into bigitem ($ziduan_str) values($ziduanzhi_str)";
if(mysql_query($sql)){
echo mysql_insert_id();
}else{
echo 0;
}
}


恩可能有一些无用代码     不过这个思路我觉得你可以试试(用$.each()来循环未知个数的符合条件的元素,拼成字符串传递给PHP,PHP转化为数组来处理)
[解决办法]
<?php
$news=array(
array('id'=>1,'title'=>'abc'),
array('id'=>2,'title'=>'def'),
array('id'=>3,'title'=>'ghi'),
array('id'=>4,'title'=>'jkl'),

);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<title>无标题文档</title>
</head>

<body>
<?php foreach (!empty($news)?$news:array() as $n):?>
<dl class="list_item">
<dd>
<input type="hidden" name="id" value="<?php echo $n['id'];?>" />
<a class="item_title" href="javascript:;"><?php echo $n['title'];?></a>
</dd>
</dl>
<?php endforeach;?>
                    
<script type="text/javascript">
jQuery(function($){
$('.item_title').click(function(e){
e.preventDefault();
alert($(this).parent().find('input').val());

});

});

</script>
</body>
</html>

------解决方案--------------------


<input type="checkbox" name=??? value=??? a1='' a2='' a3=.....>

设置多个属性值。就可以只遍历 checkbox 就可以获取到需要的数据。
[解决办法]

引用:
Quote: 引用:

我都把不想让人看到的放在一个div中,随便你怎么放。最后给 div display:none


忍不住还想问:div display:none,这个是js语句吧?放在网页代码最后,还是div定义之后呢?还是div的定义的范围内?还是咋的呢?
这个思路太牛叉了,想多大牛的一般做法。


<div style="display:none">....</div>

热点排行