2011-01-29 2 views
2

есть вопрос о скрипте эхо-скрипта php, который имеет ссылку на javascript с некоторыми переменными. Мне нужно знать формат для эха, чтобы он работал правильно. Может ли кто-нибудь пролить свет на это? Мой код размещен нижеPhp echo javascript с переменными

echo "<a href='javascript: toggle('variable1', 'variable2')'><label1 for='nameEditor'>Manage</label1></a>"; 

Теперь при наведении курсора на ссылку он просто показывает JavaScript: переключение (Теперь я попробовал несколько вещей, и я до сих пор не могу получить его на работу Кто-нибудь есть какие-либо предложения

ответ

4

Предполагая variable1 и variable2 являются PHP биты, которые вы хотите, вставленные в JavaScript, то

echo "<a href='javascript: toggle('$variable1', '$variable2')'><label1 for='nameEditor'>Manage</label1></a>"; 

Однако следует помнить, что если любой из этих переменных содержат Javascript метасимволы, такие как одинарные кавычки, вы будете сломать скрипт с синтаксической ошибкой (подумайте об этом как о той же ситуации, что и SQL-инъекция).

Чтобы быть уверенным, что содержимое переменной становится правовой Javascript, вы хотите сделать что-то вроде:

<script type="text/javascript"> 
    var variable1 = <?php echo json_encode($variable1); ?>; 
    var variable2 = <?php echo json_encode($variable2); ?> 
</script> 

<a href="javascript:toggle(variable1, variable2)...">...</a> 
0

.? попробуйте так:

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>"; 

вы должны бежать \ цитирует

+0

Там не должно быть пробела после 'JavaScript: toggle'. – stealthyninja

+0

Спасибо, это было то, что я искал на самом деле. Я должен был прямо спросить, как разбить котировки. Огромное спасибо! – awmayhall

0

это потому, что вы смешиваете ваши котировки, что браузер см ли это:.

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>"; 

Если вы избежите двойных кавычек (\ "), все будет в порядке. Сам браузер видит '' '' (все одинарные кавычки), поэтому вам нужно сохранить «'» (двойной, одиночный, одиночный, двойной) в свой атрибут элемента html, независимо от PHP (за исключением экранирования).