Codeigniter中出现意外的T_STRING错误

时间:2018-08-29 05:43:38

标签: javascript php html codeigniter

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

<?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。

请帮助我。。。谢谢。。

2 个答案:

答案 0 :(得分:1)

语法错误

 $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,您可以自由使用两个引号,但不能在其中添加函数调用。您必须对结尾TAG保持谨慎(可以使用任何您想要的标记),但是结尾标记必须在其自己的行上,没有其他任何字符,甚至没有一个空格。

我忘记了,如果转到下一行,则将一行返回到该行中,无论如何看起来还是更好。 HEREDOC可能需要一点时间来适应,但在处理多种类型的报价时,他们确实可以释放报价,并使整体处理变得更简单。

答案 1 :(得分:0)

您做错了连拍 它应该像

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