volist/foreach下,点击循环中的一个进行操作
第一种方法,是给点击元素绑定事件,用ajax将值传到控制器中,其中传的值,用jquery选择器选择值。
1、在html中
<foreach name="save" item="vo">
<tr>
<td align="center">{$vo.sid}</td>
<td>{$vo.orderid}</td>
<td>{$vo.username}</td>
<td><input name="newmoney" value="{$vo.money}"></td>
<td>{$vo.paynumber}</td>
<td>{$vo.save_time}</td>
<td>未受理</td>
<td>
<p class="btn btn-primary save">储值</p>
<p class="btn btn-primary nosave" style="margin-top:1px">拒绝</p>
</td>
</tr>
</foreach>
1、在js中
<script>
$(function(){
$(".save").click(function(){
var sid = $(this).parent().parent().find('td').eq(0).text();
var username = $(this).parent().parent().find('td').eq(2).text();
var newmoney = $(this).parent().parent().find('td').eq(3).find("input[name='newmoney']").val();
// alert(sid);alert(username);alert(newmoney);
var url = "{:U('save/add')}";
var t = $(this); $.post(url,{"sid":sid,"username":username,"newmoney":newmoney,"saves":'1'},function(data){
data = jQuery.parseJSON(data);
// console.log(data['newmoney']);
var n = t.parent().parent().find('td').eq(3);
n.empty();
n.text(data['newmoney']);
var t2 = t.next();
t.attr('class','');
t.empty();
t.html('<a style="color:#9c9c9c">已储值</a>');
t2.attr('class','');
t2.empty();
t2.html('');
});
});
$(".nosave").click(function(){
var sid = $(this).parent().parent().find('td').eq(0).text();
var username = $(this).parent().parent().find('td').eq(2).text();
var newmoney = $(this).parent().parent().find('td').eq(3).find("input[name='newmoney']").val();
// alert(sid);alert(username);alert(newmoney);
var url = "{:U('save/add')}";
var t = $(this); $.post(url,{"sid":sid,"username":username,"newmoney":newmoney,"saves":'0'},function(data){
data = jQuery.parseJSON(data);
// console.log(data['newmoney']);
var n = t.parent().parent().find('td').eq(3);
n.empty();
n.text(data['newmoney']);
var t2 = t.prev();
t.attr('class','');
t.empty();
t.html('<a style="color:#9c9c9c">已拒绝</a>');
t2.attr('class','');
t2.empty();
t2.html('');
});
});
}); </script>
1、php(tp控制器中)
public function add(){
$sid = intval(I('sid'));
$saves = intval(I('saves')); $money = doubleval(I('newmoney')); $user = I('username'); //判断是拒绝还是储值
if($saves == 1)
{
//将$sid传到前台页面的jq中的data中
$js['sid'] = $sid;
$js['newmoney'] = $money;
$js['username'] = $user;
$js['saves'] = $saves; //在cmf_q_users表中加上存储的钱
$users = D('q_users');
$result1 = $users
->field('coin')
->where("user_login = '$user'")
->find(); $coins = doubleval($result1['coin']);
//为q_users表准备数据
$data1['coin'] = $coins + $money; //更新q_users表中的总余额
$result2 = $users
->where("user_login = '$user'")
->save($data1); $save = D('save');
//为save表里准备数据
$data2['status'] = 1;
$data2['handle_personid'] = $_SESSION['ADMIN_ID'];
// 处理时间
$data2['handle_time'] = date('Y-m-d H:i:s'); // 判断一下状态 如果已经处理完了,那么提示
$status = M('save')->where('');
//向save表里更新数据
$result = $save
->where("sid = $sid")
->save($data2); //ordersid从save表里查询
$ordersid = $save
->where("sid = $sid")
->getField('orderid'); $records = D('records'); //为records表准备数据
$data3['ordersid'] = $ordersid;
$data3['rtype'] = '存款';
$data3['usernames'] = $user;
$data3['change_time'] = $data2['handle_time'];
$data3['before_coin'] = $coins;
$data3['change_coin'] = $money;
$data3['after_coin'] = $data1['coin']; //向records表中添加数据
$result3 = $records
->add($data3); echo json_encode($js,true);
} else if($saves == 0){ $js['sid'] = $sid;
$js['newmoney'] = $money;
$js['username'] = $user;
$js['saves'] = $saves; $save = D('save');
//为save表里准备数据
$data2['status'] = 11;
$data2['handle_personid'] = $_SESSION['ADMIN_ID'];
// 处理时间
$data2['handle_time'] = date('Y-m-d H:i:s'); // 判断一下状态 如果已经处理完了,那么提示
$status = M('save')->where('');
//向save表里更新数据
$result = $save
->where("sid = $sid")
->save($data2); echo json_encode($js,true);
} }
第二种方法,(从控制器传到前端页面的值,同一字段对应不同的值,h5前端页面中镶嵌着script
,script中有document.write();)
<foreach name="listorder" item="vo">
<dl class="tag_div">
<a onclick="xiangqing({$vo.id},{$vo.money},{$vo.noupdate})"><dl class="tag_div7">{$vo.orderid}</dl></a>
<dl class="tag_div8">{$vo.game}</dl>
<dl class="tag_div9">{$vo.tid}</dl>
<dl class="tag_div11">{$vo.type}</dl>
<dl class="tag_div125">元</dl>
<dl class="tag_div15">{$vo.money}</dl>
<dl class="tag_div15">
<script>
if ({$vo.win_money}==0){
document.write("-");
}else{
document.write({$vo.win_money});
}
</script>
</dl>
<dl>
<script>
if ({$vo.status}=='0'){
if ({$vo.noupdate}=='0') {
document.write("<dl class='tag_div16'>未封盘</dl>");
}
if ({$vo.noupdate}=='1') {
document.write("<dl class='tag_div16'>已封盘</dl>");
}
if ({$vo.noupdate}=='2') {
document.write("<dl class='tag_div16'>已撤单</dl>");
}
}
if ({$vo.status}=='1'){
document.write("<dl class='tag_div16'>已开奖</dl>");
} </script>
</dl>
<script type="text/javascript">
if({$vo.status} == '0'){
if({$vo.noupdate} != '2') {
document.write("<a id='chedan' onclick='beforechedan({$vo.id},{$vo.money})'><dl class='tag_div125'>撤单</dl></a>");
} else {
document.write("<dl class='tag_div125'>不可撤单</dl>");
}
} else {
document.write("<dl class='tag_div125'>不可撤单</dl>");
}
</script>
</dl>
</foreach>
volist/foreach下,点击循环中的一个进行操作的更多相关文章
- .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
林德熙 小伙伴希望保存一个文件,并且希望如果出错了也要不断地重试.然而我认为如果一直错误则应该对外抛出异常让调用者知道为什么会一直错误. 这似乎是一个矛盾的要求.然而最终我想到了一个办法:让重试一直进 ...
- Java循环中删除一个列表元素
本文主要想讲述一下我对之前看到一篇文章的说法.假设跟你的想法有出入,欢迎留言.一起讨论. #3. 在循环中删除一个列表元素 考虑以下的代码.迭代过程中删除元素: ArrayList<String ...
- shell下在while循环中使用ssh命令的问题
1 现象描述 最近使用ssh批量执行命令(已经做了密钥互信了),脚本读取配置文件中的主机列表(内容为每行一台主机IP地址),然后执行,可是每次只是执行第一台,就退出循环了. 2 排查思路 由于脚本比较 ...
- for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;
for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...
- Create an op on tensorflow; 在tensorflow 1.7/2.0 中创建一个 Op操作
最近项目,需要创建一个 tensorflow 的一个自定义操作,用来加速tensorflow的处理效果:下面对创建过程中,遇到的问题和资源进行简要记录,进行备忘: OP 创建 参考链接: https: ...
- JavaScript的for循环中嵌套一个点击事件为何点击一次弹出多个相同的值
先看下面一段代码: for(var i=0; i<10; i++) { $('#ul').bind('click', function() { alert(i) }) } 对于这段代码,当点击I ...
- python循环中对一个列表的赋值问题
参考:https://www.cnblogs.com/zf-blog/p/10613981.html https://www.cnblogs.com/andywenzhi/p/7453374.html ...
- 点击tablecell中的一个按钮,确定cell所在的行
- (void) del:(UIButton *) button { NSLog(@"%s",__FUNCTION__); UITableViewCell * cell = (UI ...
- C# Stopwatch获取循环中某操作的时间消耗
在C#中通常使用DateTime来表示当前时间,可以在一个操作的前后分别使用一个DateTime对象获取当前时间,再将两个DateTime对象相减获得时间差(TimeSpan对象),从而得到这个操作耗 ...
随机推荐
- 清空javascript数组数据
var arrayObj = new Array(); arrayObj.splice(0, arrayObj.length);//清空数组数据
- React-学习总结
概念知识:1.JSX是什么 JSX其实是JavaScript的扩展,React为了代码的可读性更方便地创建虚拟DOM等原因,加入了一些类似XML的语法的扩展. 2.编译器——jsxTransforme ...
- 通过profile优化SQL语句
开启profile优化SQL语句:set profiling=1;执行SQL语句show profiles;show profile for query 2;//根据query_id 查看某个查询的详 ...
- Android之四大组件、六大布局、五大存储
[-] Android六大界面布局方式 1 LinearLayout线性布局 LinearLayout的常用XML属性及相关方法 LinearLayout子元素支持的常用XML属性及方法 2 Tabl ...
- OpenAI gym的建模思想
一.强化学习问题需要描述那些内容 强化学习中最主要的两类对象是“个体”和“环境”,其次还有一些像“即时奖励”.“收获”.“状态”.“行为”.“价值”.“策略”.“学习”.“控制”等概念.这些概念把个体 ...
- new AnnotationConfigApplicationContext(MyBean.class)时,发生了什么?
当我们run一段代码,像下面这样两行.spring究竟做了什么些,让整个容器准备就绪,交付给用户直接可用的各种特性.为了弄清楚,默默梳理记录下来. public static void main (S ...
- Javascript自动打开匹配的超链接
可以用来点击广告.... 部分代码: function AutoClick() { var DivLink=document.getElementById("divLink"); ...
- Dancing Link专题
一些链接: http://www.cnblogs.com/-sunshine/p/3358922.html http://www.cnblogs.com/grenet/p/3145800.html 1 ...
- Python基础(15)_python模块、包
一.模块 1.什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀 模块的本质:模块的本质是一个py文件 2.模块分为三类:1)内置模块:2)第三方模块: ...
- UI组件之UIImage
UIImageView:图像视图,用于在应用程序中显示图片 UIImage:是将图片文件转换为程序中的图片对象 UIImageView是UIImage的载体 方法一:用此方法创建图片对象,会将图片ca ...