2014-12-24 4 views
0

У меня есть таблица, и в каждой ячейке есть изображение редактирования, поэтому, когда пользователи нажимают на него, они будут видеть окно ввода в ячейке. (Ниже приведен пример одного из клеток)Отправить значение переменной функции onclick

<td> 
     echo 
      "<p id=$idl>" . $var . "</p>" . "<img style ='cursor:pointer; ' class='onInput' src='http://nimbuzz007.hexat.com/icon4/icon%2015.png' id='input_img' onclick='legacyFunction($idl,$var)'>"; 

    </td> 

и это 'legacyFunction':

function legacyFunction($idl,$var) { 

    document.getElementById($idl).innerHTML = 
    "<input value=$var></input>"; 

};

поэтому я хочу отправить текущие данные ячейки функции, чтобы показать это в поле ввода. Но это не работает. Какая у меня ошибка? можно ли это сделать?

+0

Смешивание Javascript, HTML и PHP является первым из многих вопросов здесь ... –

+1

Смешивание JS и PHP иногда хорошо, но в этом случае что-то неверно [тм]. – ciuak

ответ

0

Вам нужны цитаты вокруг аргументов, так как они являются строками.

onclick='legacyFunction(\"$idl\",\"$var\")' 
0

Как другие заявили о своей плохой практике для смешивания html, js и php. Я всегда стараюсь разделить код, когда это возможно.

Пример:

<td> 
    <p id="<?php echo $idl; ?>"><?php echo $var; ?></p> 
    <img style="cursor: pointer;" class="onInput" src="http://nimbuzz007.hexat.com/icon4/icon%2015.png" onclick="legacyFunction(<?php echo "$idl, $var"; ?>);"> 
</td> 
<script> 
    function legacyFunction($idl, $var) { 
     // Inputs are void elements and as such they do not need closing tags - </input> 
     document.getElementById($idl).innerHTML = '<input value="'+ $var + '">'; 
    }; 
</script> 
Смежные вопросы