javascript - 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。
请帮帮我..提前谢谢..
解决方案
语法错误
$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 可能需要一点时间来适应,但在处理插入多种类型的引号时,它们确实可以释放引号并使事情变得更简单。
推荐阅读
- spring - 为什么使用指定事务管理器时 Spring Data JPA 查询失败?
- c++ - 为什么不能将概念传递给模板元函数?
- docker - docker 将卷数据存储在哪里?
- javascript - 我可以从外部文件加载 Web 路径吗
- mysql - 如何在 SQL 变量中存储 IP 地址列表?
- python - 使用使用 asyncio 事件循环线程的表示来记录对象会暂停脚本
- javascript - 如何对相同键的值求和并在每个对象的对象数组中添加一个键,该键的值包含 id 相同键的数组?
- c - 第 10 行:字符 31:运行时错误:存储到地址 0x7fff6774f4f4,空间不足,无法容纳“int”类型的对象
- excel - Excel VBA:运行时错误“13”:由于无法识别的日期格式导致类型不匹配
- neo4j - 计算一个节点的不同类型边的数量