栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

jquery中ajax传递中文参数和js数组问题

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jquery中ajax传递中文参数和js数组问题

     
要的效果就是:选择添加对话id,点击文本框,弹出添加对话的框,可以添加多组对话
如果下一对话的id不输的话添加后会自动更新为该添加对话的id+1及下个对话的id
提交后,弹出框自动消失,文本框中自动显示添加的第一个对话的id。我就使用了ajax进行传递。父页为task_detail.html   子页为acceptadd_select.htm 因为没有找到在插入之前就能获取到该对话的ID的方法,所以这样做的:自动更新下一个对话的id的方法为:如果为空先添加,然后获取刚添加的键值:$id = mysql_insert_id();然后再更新刚才的数据 
 
  添加对话关闭
 
 
  
 
  在子页中使用ajax代码如下子页面中的提交按钮触发一个事件子页面中的jquery代码如下但在使用js的时候发现:一:js的数组定义为 var arr = new Array();  Array中的A一定要大些js数组转化为json格式的问题 二:ajax传递的时候不能传递中文参数,而数字和字母都是可以的在网上查了好多资料,在传递的contentType:"application/x-www-form-urlencoded;charset=UTF-8", 加上charset=UTF-8也没起作用,最后将问题解决了 1:第一种方法就是把数据放到数组中,将数组转化成json格式的传到后台,到php后台再用json_decode ,返回成php数组 2:在使用ajax传递时,先将汉字用escape转变一下,传递到php后台时,如何将escape转换的进行解码呢?我在网上查了很多资料都没有用,最后找到了一个函数函数如下:function js_unescape( $str )
    {
  $ret = '';
  $len = strlen($str);
  for ($i = 0; $i < $len; $i++)
  {
   if ($str[$i] == '%' && $str[$i+1] == 'u')
   {
    $val = hexdec(substr($str, $i+2, 4));
    if ($val < 0x7f) $ret .= chr($val);
    else if($val < 0x800) $ret .= chr(0xc0 |($val>>6)).chr(0x80 |($val&0x3f));
    else $ret .= chr(0xe0 |($val>>12)).chr(0x80 |(($val>>6)&0x3f)).chr(0x80 |($val&0x3f));
    $i += 5;
   }
   else if ($str[$i] == '%')
   {
    $ret .= urldecode(substr($str, $i, 3));
    $i += 2;
   }
    else $ret .= $str[$i];
   }
  return $ret;
    } 找了一个函数OK了函数如下: 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/246382.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号