0

我正在使用 CodeIgniter 表单助手,这就是它的作用:

Uncaught SyntaxError: Unexpected token ILLEGAL

编码:

jQuery('#window-1').append('<?= form_dropdown('hfdata', $hf_arr, set_value('hfdata'), 'class="span3"') ?>');

如您所见,当我这样做时,我在 JS 中使用 PHP <?= 'Test' ?>
所以它似乎与 CodeIgniter 函数有关。

据我所知,此错误消息可能是由代码中的未知/错误字符引起的,从我在萤火虫中看到的内容来看,这个 CI 函数正在生成带有制表符和换行符的文本......我猜这就是我的问题.

我可能是错的,所以如果是,请纠正我。

我将不胜感激这个问题的任何解决方案。

4

3 回答 3

1

很有可能你搞砸了你的报价,你需要改变你将最后一个参数传递给下拉列表的方式。

$class = 'class="span3"';



jQuery('#window-1').append('<?= form_dropdown("hfdata", $hf_arr, set_value("hfdata"), $class) ?>');
于 2012-11-06T12:44:02.240 回答
1

解释 PHP 和 Javascript 是如何工作的: PHP 在服务器上执行,这给出了 html 输出。您的浏览器将获得该输出并可以对其进行任何操作。从这一点javascript可以完成他的工作。

您正在向用户浏览器回显 php 函数调用。Javascript 不能调用 php 函数。如果你想这样做,那么你需要调用一个 php 文件来返回你想要的结果。但我想还有一个问题。(如果你想这样做,请转义 ' 字符)

您需要在服务器上执行 PHP 代码。这将给出一个结果。您将此结果发送给客户端。在客户端 PC 上,javascript 将执行您的 javascript 代码。

如果你想用 PHP 生成 javascript 代码,那么你可以这样做(在服务器上的 PHP 中!):

jQuery('#window-1').append('<?= form_dropdown('hfdata', $hf_arr, set_value('hfdata')); ?> '); 

如果这不是您想要的,那么您正在解决设计问题。然后这是一种死胡同。

于 2012-11-06T12:49:24.640 回答
0

我自己找到了答案......正如我所说,它是由从from_dropdown.

解决方案很简单,删除所有不需要的字符,如换行符:

<?php
     $prepare = preg_replace('/^\s+|\n|\r|\s+$/m', '', form_dropdown('hfdata', $hf_arr, set_value('hfdata'), 'class="span3"'));
?>
jQuery('#window-1').append('<?= $prepare ?>');
于 2012-11-06T12:57:23.587 回答