试图在PHP中回显JS函数

时间:2011-11-27 00:25:52

标签: php javascript html quote

我正在尝试在PHP echo中回显HTML字符串中的js函数。

我无法弄清楚:

$MY_JS_FUNCTION = '<script type="text/javascript">item + getLastField2()</script>';

if($row2->type == 'text') {
    echo "<li id='item-".$row2->rank."' class='list_item'>";
    echo "<textarea rows='2' id='".$row2->single_id."' cols='90' name='field[".$MY_JS_FUNCTION."]' data-kind='text' >".$row2->content."</textarea>";
    echo "</li>";
    echo '<br />';
}

有任何想法让这项工作?我想我有很多引用或类似的东西......

非常感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:0)

我还建议将名称存储在数据库中。 然后你可以使用$ row2-&gt; name来插入正确的名称

答案 1 :(得分:0)

您的变量$MY_JS_FUNCTION包含HTML <script>标记,其中包含一些(奇怪的)JavaScript代码(缺少分号)。根据您的代码,第5行的echo会生成此HTML:

<textarea ... name='field[<script type="text/javascript">item + getLastField2()</script>]' ... >...</textarea>

这绝对不是有效的HTML。还有你的问题......

答案 2 :(得分:0)

看来你的意图是回应那个JS,这样当页面加载时,JS实际上设置了该textarea的name字段的值。如果是这种情况,更简单的方法可能是这样的:

$MY_JS_FUNCTION = '<script type="text/javascript">document.getElementById("myTextArea").name = item + getLastField2()</script>';

if($row2->type == 'text') {
    echo "<li id='item-".$row2->rank."' class='list_item'>";
    echo "<textarea rows='2' id='".$row2->single_id."' cols='90' id='myTextArea' data-kind='text' >".$row2->content."</textarea>";
    echo $MY_JS_FUNCTION;
    echo "</li>";
    echo '<br />';
}

这将产生有效的HTML。一旦到达该行,JS函数将触发,并将“name”值更新为该函数的结果。请务必添加“id”字段,以便JS知道要定位的元素。