У меня возникли проблемы с некоторым JavaScript. Я использую jQuery для динамического добавления строк в таблицу. Кроме того, javascript генерируется из некоторого кода PHP и Kohana.
Вот сценарий.
<script type="text/javascript">
function delExtensionNumber(element){
$(element).prev().attr('value', 'X');
$(element).parent().parent().hide();
}
function addExtensionNumber(){
lines = <?php echo form::dropdown($ext_id."[did]", $lines, ''); ?>;
extensions = <?php echo form::dropdown($ext_id."[extension]", $phones, ''); ?>;
$('#line-extensions > tbody:last').append('<tr><td>'+lines+'</td><td>'+extensions+'</td><td><input type="hidden" name="'+<?php echo $ext_id;?>+'[state]" value="0" /><a class="hide" onclick="delExtensionNumber(this)"></a></td></tr>');
<?php $ext_id++; ?>
}
</script>
Это отлично работает в Firefox. Но в IE и Chrome это не работает. В Google Chrome ничего не происходит. В IE я получаю сообщение об ошибке на странице. Ошибка является синтаксической ошибкой. Ему не нравится символ <после строки слова.
Итак, я подумал, что лучше поставить несколько цитат вокруг этой строки. Но ... когда я это делаю, ничего не работает.
3 ответа
Я просто собираюсь предположить, что form::dropdown
выплевывает обычный HTML. В Firefox это интерпретируется с помощью E4X, а затем превращается обратно в строку при объединении. IE и Chrome не поддерживают E4X. Чтобы это работало, вы можете сделать что-то вроде этого:
lines = <?php echo json_encode(form::dropdown(...)); ?>;
Правка . Причина, по которой он не работает, когда вы помещаете в него кавычки, заключается в том, что HTML-код содержит кавычки. Код выше будет правильно экранировать кавычки.
Я настоятельно рекомендую вам использовать плагин Jquery DOM Creation
Было бы намного проще
Chrome не поддерживает синтаксис XML, вы не можете написать, например, line = <div>foo</div>
, вы должны заключить данные в строку.
lines = '<?php echo form::dropdown($ext_id."[did]", $lines, ""); ?>;'
Может сработать (и вам, возможно, также следует сбежать '
)
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.