Попытка повторить функцию JS в PHP - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь отобразить функцию js в строке HTML внутри PHP echo.

И я не могу понять:

$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 голосов
/ 27 ноября 2011

Ваша переменная $MY_JS_FUNCTION содержит тег HTML <script> с некоторым (странным) кодом JavaScript (без точки с запятой). На основании вашего кода echo в строке 5 приводит к следующему HTML:

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

Это определенно не действительный HTML. И есть твоя проблема ...

0 голосов
/ 27 ноября 2011

Похоже, вы намереваетесь повторить этот JS, чтобы при загрузке страницы JS фактически устанавливал значение поля имени для этой текстовой области.Если это так, то более простой способ может выглядеть примерно так:

$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 знал, на какой элемент нацелиться.

0 голосов
/ 27 ноября 2011

Я бы рекомендовал также сохранить имя в базе данных.Затем вы можете использовать $ row2-> name, чтобы вставить правильное имя

...