首页 > 解决方案 > codeigniter 中出现意外的 T_STRING 错误

问题描述

我正在使用Codeigniter 2.2. 我正在尝试使用 HTML 表格类库构建表格。它还包含删除按钮。出于按钮目的,我正在使用 form_button() 助手。我的代码的视图文件如下:

<?php
foreach($invoices as $row) {
    $data = array(
        'type' => 'button',
        'content' => 'delete',
        'class'=>'btn btn-default btn-sm dropdown-toggle',
    );

    $js='onclick="confirm_modal('base_url().'admin/invoice/delete/'. $row['invoice_id']')"';
    $links  = form_button($data,$js);

    $this->table->add_row(
        $this->crud_model->get_type_name_by_id('student',$row['student_id']),$row['title'],$row['description'],$row['amount'],$row['amount_paid'],$row['due'],$row['status'] ,$links 
        );

    }
    echo $this->table->generate();
     ?>

但在行中:

$js='onclick="confirm_modal('base_url().'admin/invoice/delete/'. $row['invoice_id']')"';

我收到错误

意外的 T_STRING。

请帮帮我..提前谢谢..

标签: javascriptphphtmlcodeigniter

解决方案


语法错误

 $js='onclick="confirm_modal('base_url().'admin/invoice/delete/'. $row['invoice_id']')"';

缺少.(s)

$js='onclick="confirm_modal(\''.base_url().'admin/invoice/delete/'. $row['invoice_id'].'\')"';

一个好的 IDE 将帮助您避免这些简单的错误。

T_STRING是 PHP 将文本解释为代码时使用的 STRING 令牌的名称,也就是交易的词法分析器/解析器部分。所以 UNEXPECTED T_STRING 是一个意想不到的字符串,意味着一个字符串只是在不应该出现的地方令人不寒而栗。

根据另一条评论,您也缺少'JS 部分。

另一种方法是HEREDOC

 $url = base_url().'admin/invoice/delete/'. $row['invoice_id'];

 $js= <<<SCRIPT
 onclick="confirm_modal('{$url}')"
 SCRIPT; //nothing can go here no spaces not even this comment.

使用 HEREDOC,您可以自由地使用这两个引号,但不能将函数调用放入其中。你必须小心结束标签(你可以使用任何你想要的标签),但结束标签必须在它自己的行上,没有其他任何东西,甚至没有一个空格。

我忘记了如果去下一行会在那里放一个回车线,无论如何它看起来更好。HEREDOCs 可能需要一点时间来适应,但在处理插入多种类型的引号时,它们确实可以释放引号并使事情变得更简单。


推荐阅读