首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >警告:中的字符串偏移量‘’非法

警告:中的字符串偏移量‘’非法
EN

Stack Overflow用户
提问于 2015-11-12 06:50:39
回答 2查看 1.6K关注 0票数 0

我要买一台Warning: Illegal string offset 'customitem_id' in admin/controller/sale/customer.php

/admin/controller/sale/customer.php on line 941Notice: Uninitialized string offset: 0

我正在尝试在列表中显示所有关联的自定义产品,我不确定此错误意味着什么。这是代码,如果我没有foreach循环,但只显示了一个产品,它就可以工作。我需要其他5个分配的产品也出现。

` //自定义物料分配给客户

代码语言:javascript
运行
复制
    if (isset($this->request->post['customitem_id'])) {
        $data['customitem_id'] = $this->request->post['customitem_id'];
    } elseif (!empty($customer_info)) {
        $data['customitem_id'] = $customer_info['customitem_id'];
    } else {
        $data['customitem_id'] = 0;
    }
        $data['product_relateds'] = array();
        if(isset($data['customitem_id'])) {
        $related_infos = $this->model_sale_customer->getProduct($data['customitem_id']); 

        foreach($related_infos as $related_info) {
            $data['product_relateds'][] = array(
                'customitem_id' => $related_info['customitem_id'],
                'name'       => $related_info['name']
            );
          }             
       }

任何帮助都将不胜感激。

tpl文件中的其他代码如下所示

$('input[name=\'related\']').autocomplete({ 'source': function(request, response) { $.ajax({ url: 'index.php?route=catalog/customitems/autocomplete&token=<?php echo $token; ?>&filter_name=' + encodeURIComponent(request), dataType: 'json',

代码语言:javascript
运行
复制
         `success: function(json) {                 response($.map(json, function(item) {                     return {                         label: item['name'],                         value: item['customitem_id']                     }                 }));             }         });     },     'select': function(item) {         $('input[name=\'related\']').val('');`
代码语言:javascript
运行
复制
    $('#product-related' + item['value']).remove();

    $('#product-related').append('<div id="product-related' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="customitem_id[]" value="' + item['value'] + '" /></div>')`

<div class="form-group"> <label class="col-sm-2 control-label" for="input-related"><span data-toggle="tooltip" title="<?php echo $help_related; ?>"><?php echo $entry_addcustomitem; ?></span></label> <div class="col-sm-10"> <input type="text" name="related" value="" placeholder="<?php echo $entry_addcustomitem; ?>" id="input-related" class="form-control" /> <div id="product-related" class="well well-sm" style="height: 150px; overflow: auto;"> <?php foreach ($product_relateds as $product_related) { ?> <div id="product-related<?php echo $product_related['customitem_id']; ?>"><i class="fa fa-minus-circle"></i> <?php echo $product_related['name']; ?> <input type="hidden" name="customitem_id[]" value="<?php echo $product_related['customitem_id']; ?>" /> </div> <?php } ?> </div> </div> </div>

EN

回答 2

Stack Overflow用户

发布于 2015-11-12 07:06:58

当有问题的变量是字符串而不是数组时,就会抛出错误。在本例中为$related_info。一个$related_infovar_dump可以帮助你。

票数 1
EN

Stack Overflow用户

发布于 2015-11-12 07:16:57

你的第一个错误“非法字符串偏移量'customitem_id‘in admin/controller/sale/CUSTER.php”很可能你的变量不是一个数组,而实际上是一个字符串。

您的第二个错误"Notice: Uninitialized string offset: 0“表明变量是一个数组,但是索引0是相同的。

下面的简单测试对每个错误进行注释和取消注释:

$dummyVar =“你好”;

//错误=>未初始化的字符串偏移量:5//回显$dummyVar5;

//错误=>非法字符串偏移量'key-name‘//echo $dummyVar'key-name';

//错误数组未定义索引: key-name $dummyVar2 = => ();$dummyVar2 = 'something';//echo $dummyVar2'key-name';

//错误=>未初始化的字符串偏移量:0 $emptyString = '';echo $emptyString;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33661347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档