在实际应用中,遇到这种以回车分隔的字符串,单是存储来说倒是简单,但是在实际应用中还要对内容进行判断,看是否符合内容的限制,比如说图中的区域限制,我们还要对区域进行判断和限制。

我是这么处理的:

//首先获取字段
$limitArea = I('limit_area','','filter_keyword');
//然后对其进行回车处理,并转换为数组
$limitArea = ecplode(PHP_EOL,$limitArea);
//地区限制临时数组
$limitAreaTemp = [];
foreach ($info['limit_area'] as $area){
    //因为我有一个数据表是专门用来存储位置信息的,names:地区名称,code:区域编码
    //此类信息可以参考ip.taobao.com中的通过ip获取的位置信息
    $areaInfo = D('admin_region2')->where(array('names'=>$area))->find();
    //把输入的地址转换为区域编码存入临时数组
    $limitAreaTemp[] = $areaInfo['code'];
$info['limit_area'] = json_encode($limitAreaTemp);
$res = D('activity')->where(array('id' => $id))->save($info);

现在输出一遍,看下效果:

获取的$limitArea输出:

现在输出去除空格并组成数组的$limitArea:

现在输出$limitAreaTemp:

现在输出$info['limit_area']:

最终以这种格式存入数据库。

现在开始看我们的调取,并展示在textarea中

$info = $this->db->find($activityID);
//我们从数据库中查询的$info['limit_area']为json格式的城市代码,我们现在需要对其进行转换成names
$info['limit_area'] = json_decode($info['limit_area']);
$limitAreaTemp = [];
foreach($info['limit_area'] as $area){
    $areaInfo = D('admin_region2')->where(['code'=>$area])->find();
    $limitAreaTemp[] = $areaInfo['names'];
$info['limit_area'] = join(PHP_EOL,$limitAreaTemp);
$this->assign('info',$info);

最终$info['limit_area']就是博客第一张图片的状态

3、前端如何判断是否在区域范围内

获取用户的ip地址进行判断,通过ip.taobao.com接口返回的城市编码,看此编码是否在此区域的数组中

$locationInfo = $region->getTaobaoIpArea(get_client_ip(0, 1));
$isInLimitArea = in_array($locationInfo['city_id'],json_decode($info['limit_area']));
1、 在实际应用中,遇到这种以回车分隔的字符串,单是存储来说倒是简单,但是在实际应用中还要对内容进行判断,看是否符合内容的限制,比如说图中的区域限制,我们还要对区域进行判断和限制。 我是这么处理的: //首先获取字段$limitArea = I('limit_area','','filter_keyword');//然后对其进行回车处理... 1、使用<pre>标签,该标签能按 输入 格式 原样输出。 2、采用该标签后,在移动端等比较小的屏幕上,会发现由于按原 格式 输出,如果用户连续 输入 很长,会出现超出屏幕框的的情况,需要加入以下样式: pre { white-space: pre-wrap; /*css-3*/
textarea 去除多余空格和 回车 的方法及其属性 1.错误解决方法 使用 textarea 的标签 候发现多了空格或者’\n‘,后来发现是</ textarea >标签的位置错了 以下是错误示范: < textarea style="width:100%;height:5%;">你好 </ textarea > 以下是正确示范: < textarea style="...
格式 json 数据 展示区域 <div id="show Json Data" contenteditable="true" style="width:100%;height:300px;border:1px red solid;">测试</div> <#form: textarea path="show Json Data" maxlength="10000" class="f...
将input、select、 textarea 的name作为 json 的key, 输入 的值作为 json 的值,封装成 json 对象,以作为ajax请求传送的参数。  function serialzerbale() { var $div_input_query = $("div[class='content'] input"); var $div_select_query = $("div[cl...
应该都有人试过 textarea 的默认值问题,如果value的值绑定的是data的 数据 ,而这个 数据 又是在onLoad 通过wx.request从服务器获取的话,那么在真机测试的 候,data的 数据 是渲染不出来的,然后找到一个解决方法,就是在onReady里面再重新一次setData。 假设data 有这么一个info,它的值在onLoad 通过请求获取然后setData,然后 textarea 组件的value绑定了它,但这样的话,真机测试 数据 是渲染不出来的 data{ info:'' 那么我们添加一段代码,就是在onReady再进行一次setData,赋的值是它本身
如何识别一个字符串是否 Json 格式 ScriptEngineManagersem=newScriptEngineManager(); ScriptEnginese=sem.getEngineByName("js"); String json str="\r\n[{}]"; if(! json st...
在Vue ,如果想要在`< textarea >` 默认加上回复 内容 ,可以使用`v-model`绑定 textarea 内容 ,并在Vue实例 设置默认值。 以下是一个示例: ```html <template> < textarea v-model="replyContent"></ textarea > <button @click="submitReply">提交回复</button> </template> <script> export default { data() { return { replyContent: '在此 输入 回复 内容 ...', methods: { submitReply() { // 提交回复的逻辑 </script> 在上述代码 ,`replyContent`是 textarea 内容 绑定,初始值为"在此 输入 回复 内容 ..."。如果用户不修改 内容 ,则提交 会提交该默认值。当用户开始 输入 内容 ,该默认值会被覆盖。在`submitReply`方法 ,可以获取`replyContent`的值并进行相应的提交操作。