jQuery MiniUI

标题: 请教:关于时期时间转换的问题 [打印本页]

作者: cqdzlyh    时间: 2012-6-14 20:09:36     标题: 请教:关于时期时间转换的问题

我的后台是ThinkPHP+MySQL,数据库表中“createtime ”字段或“worktime”字段使用的INT(11),保存结果为: “1339675132
所有列表操作都使用同一个函数查询并返回json数据,并在后台列表中将1339675132 ”  显示为:“2012-06-14 ”格式。
是否在返回json前就要先转换成“ 2012-06-14 ”格式 ,如果是这样,但我有些表字段命名也不一定相同。
请问:我该怎样做才好?



作者: carboncocoa    时间: 2012-6-14 21:43:29

字段格式改为datetime或者date
int格式不可能用-的吧
另外你说的保存是不是表单提交的?
表单提交的转换以后是xxxx-xx-xxHxx-xx-xx
另外不知道你提交的表单是json还是原始的数据对象

作者: carboncocoa    时间: 2012-6-14 21:46:14

我也用thinkphp做的
我觉得提交为json后台处理麻烦
直接用  var data = form.getData();                 
var json = mini.encode(data);
  var json = eval("("+json+")");
转换为数组向量
后台可以直接create()提交的数据
作者: carboncocoa    时间: 2012-6-14 21:49:06

carboncocoa 发表于 2012-6-14 21:46
我也用thinkphp做的
我觉得提交为json后台处理麻烦
直接用  var data = form.getData();                 

另外别用minidecode
minidecode处理的日期是分为2个字段的
一段是时间,一段是日期
所以用eval比较好
eval以后日期时间格式为类似于
2000-01-11H22:22:22
MYSQL用datetime格式可以直接处理
另外我觉得createtime用thinkphp的自动填充更理想~~
作者: cqdzlyh    时间: 2012-6-15 13:18:32

谢谢carboncocoa的解答。
你的:
直接用  var data = form.getData();                 
var json = mini.encode(data);
  var json = eval("("+json+")");
转换为数组向量
后台可以直接create()提交的数据
编辑页模板表单是怎样处理的?还是用传统的Action="url"传递吗?那就不能用到“mini.encode(data); ”这个了啊。
作者: cqdzlyh    时间: 2012-6-15 13:26:31

我以前的编辑模板页面:
  1. <form id="form1" method="post" action="__URL__/update">
  2.   <input name="user_id" class="mini-hidden" value="<?php echo $_SESSION[C('USER_AUTH_KEY')] ?>"/>
  3.   <input name="updatetime" class="mini-hidden" value="<?php echo time(); ?>" />
  4. <input name="id" class="mini-hidden" value="{$vo.id}" />
  5.     <table>
  6.             <tr>
  7.         <td style="width:70px;">用 户 名:</td>
  8.         <td style="width:150px;"><input name="username" class="mini-textbox" required="true"/></td>
  9.         <td style="width:70px;">真实姓名:</td>
  10.         <td style="width:150px;"><input name="name" class="mini-textbox" required="true"/></td>
  11.       </tr>
  12. .........................

  13.     </table>
  14.   </div>
  15.   <div style="text-align:center;padding:10px;">
  16.     <a class="mini-button" onclick="onOk" style="width:60px;margin-right:20px;">确定</a>
  17.     <a class="mini-button" onclick="onCancel" style="width:60px;">取消</a>
  18.     <a class="mini-button" onclick="form1.submit();" style="width:60px;margin-right:20px;">传统表单提交:确定</a>
  19.   </div>
  20. </form>
  21. <script type="text/javascript">
  22. mini.parse();
  23. var form = new mini.Form("form1");

  24. function SaveData() {
  25.   var o = form.getData();
  26.   form.validate();
  27.   if (form.isValid() == false) return;

  28.   var json = mini.encode([o]);
  29.   //alert("提交成功,返回结果:" + json);
  30.   $.ajax({
  31.     url: "__URL__/update",
  32.     type: "post",
  33.     data: { returnAjaxData: json },
  34.     cache: false,
  35.     success: function (text) {
  36.       CloseWindow("Ok");
  37.       //alert("修改完毕!");
  38.     },
  39.     error: function (jqXHR, textStatus, errorThrown) {
  40.       alert(jqXHR.responseText);
  41.       CloseWindow();
  42.     }
  43.   });
  44. }
  45. //以下js代码省略...........
  46. </script>
复制代码
请教:
  1. 直接用  var data = form.getData();                 
  2. var json = mini.encode(data);
  3.   var json = eval("("+json+")");
  4. 转换为数组向量
  5. 后台可以直接create()提交的数据
复制代码
前台提交和后台是如何处理的呢?
作者: niko    时间: 2012-6-15 14:33:59

你下载下最新的php版本。
然后参考:
1)前台:http://miniui.com/demo/#src=datagrid/celledit.html
2)后台:demo/data/AjaxService.php

作者: carboncocoa    时间: 2012-6-15 15:06:28

cqdzlyh 发表于 2012-6-15 13:26
我以前的编辑模板页面:请教:前台提交和后台是如何处理的呢?

模板里的表单我是根据 miniui示例做的
用miniui提供的ajax方法提交的
你可以尝试下跟thinkajax结合
我反正没做出来

var json = mini.encode(data);
json = eval("("+json+")");
前面的不可以少
如果你不用mini.encode(data)
有关日期的字段都是接收不了的

后台跟普通的表单提交一样,
只需要接收你提交的数据就可以了
作者: cqdzlyh    时间: 2012-6-15 16:28:37


使用miniui时的前台表单:

<form id="form1" method="post">
  <input name="updatetime" class="mini-hidden" value="<?php echo toDate(); ?>" />
  <input name="id" class="mini-hidden" value="{$vo.id}" />
  <div style="padding-left:11px;padding-bottom:5px;">
    <table>
            <tr>
        <td style="width:70px;">用 户 名:</td>
        <td style="width:150px;"><input name="username" class="mini-textbox" required="true"/></td>
        <td style="width:70px;">真实姓名:</td>
        <td style="width:150px;"><input name="name" class="mini-textbox" required="true"/></td>
      </tr>
      <tr>
        <td >性  别:</td>
        <td ><select name="sex" class="mini-radiobuttonlist"><option value="1">男</option><option value="2">女</option><option value="0">保密</option></select></td>
        <td >出生日期:</td>
        <td ><input name="birthday" class="mini-datepicker" required="true"/></td>
      </tr>
    </table>
  </div>
  <div style="text-align:center;padding:10px;">
    <a class="mini-button" style="width:60px;margin-right:20px;">确定</a>
    <a class="mini-button" style="width:60px;">取消</a>
  </div>
</form>

<script type="text/javascript">
mini.parse();
var form = new mini.Form("form1");

function SaveData() {
  var data = form.getData();
  form.validate();
  if (form.isValid() == false) return;
  var json = mini.encode(data);
  json = eval("("+json+")");
  //alert("提交成功,返回结果:" + json);
  $.ajax({
    url: "__URL__/update",
    type: "post",
    data: { returnAjaxData: json },
    cache: false,
    success: function (text) {
      CloseWindow("Ok"+text);
      //alert("修改完毕!");
    },
    error: function (jqXHR, textStatus, errorThrown) {
      alert(jqXHR.responseText);
      CloseWindow();
    }
  });
}

function onOk(e) {
  SaveData();
}

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

使用miniui时的 后台更新:
  1. function update() {
  2.   $Data = $_POST['returnAjaxData'];
  3.   $name=$this->getActionName();
  4.   $model = D ( $name );
  5. /*
  6.                 if (false === $model->create ()) {
  7.                         echo ( $model->getError () );
  8.                 }*/

  9. //$list=$model->add ();       //新增
复制代码
        $list=$model->where('id='.$Data["id"])->save($Data);   //只有这样才能更新
if (false !== $list) {
  echo ('编辑成功!');
                } else {
  echo ('编辑失败!');
                }
        }虽然能够更新,但是updatetime字段不能更新。
我参考了两位老师的做法,不使用miniui的情况下我的系统都能正常使用$model->create ()$model->save () 进行添加、更新的。
miniui 为06-13的版本。



作者: carboncocoa    时间: 2012-6-15 17:16:18

cqdzlyh 发表于 2012-6-15 16:28
使用miniui时的前台表单:

模板里用PHP
<php>echo  </php>
就算普通的表单你不用php标签,不出问题吗?
要不你用firebug看看你提交的是什么
作者: cqdzlyh    时间: 2012-6-15 18:27:41

carboncocoa 发表于 2012-6-15 17:16
模板里用PHP
echo  
就算普通的表单你不用php标签,不出问题吗?

谢谢你。确实是这样的。
<input name="updatetime" class="mini-hidden" value="<php> echo toDate(); </php>" />
表单提交的数据是
  1. returnAjaxData[user_id]:
  2. returnAjaxData[updatetime]:Sat Jun 09 2012 14:28:44 GMT 0800 (中国标准时间)
  3. returnAjaxData[id]:7
  4. returnAjaxData[username]:user17
复制代码
具体我该怎样写呢?我是个新手,还请多多指教。
作者: niko    时间: 2012-6-16 16:23:32

你下载php版本,研究下MiniUI的示例,是怎么处理表格加载、表单编辑提交保存的。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2