2013-03-07 3 views
1

Я получаю эту ошибку в Firebug:незавершенная строка, Использование PHP в Javascript

SyntaxError: незавершенная строка

Panel_Measurements [я] = "<br />

и теперь все мои функции от не работает ... Я пытался несколько решений, но ни один из них не работает ... это мой код:

<script type="text/javascript" language="javascript> 
    <?php 
     $i = 0; 
     while(isset($dbPanel_Name[$i])) 
     { 
    ?> 

      Panel_brand_type[i] = "<?php echo addslashes($dbPanel_Brand_Type[$i]); ?>"; 
      Panel_description[i] = "<?php echo addslashes($dbPanel_Description[$i]); ?>"; 
      Panel_measurements[i] = "<?php echo addslashes($dbPanel_Measurements[$i]); ?>"; 
      Panel_warranty[i] = "<?php echo addslashes($dbPanel_Warranty[$i]); ?>"; 
      i++; 
    <?php 
     $i++; 
     } 
    ?> 
</script> 

Если есть какой-либо другой способ получить переменные PHP в Javascript, я хотел бы узнать! Мне нужна всякая помощь.

Sincerly,

Harmen Бринкмен

ответ

6

Намного лучше впрыскивать строковые литералы (и почти каждый другой тип значения тоже) в JavaScript является json_encode:

Panel_brand_type[i] = <?php echo json_encode($dbPanel_Brand_Type[$i]); ?>; 

Обратите внимание, что я удаленные двойные кавычки вокруг тегов PHP, json_encode предоставляет их сам.

Единственная потенциальная проблема с этим решением заключается в том, что строка, которую вы вводите, должна быть UTF-8, но у вашего существующего кода с addslashes также была аналогичная проблема (вслепую предполагается, что вы используете однобайтовую кодировку) поэтому ИМХО нет регрессии.

Наконец, убедитесь, что переменные PHP на самом деле установлены, прежде чем пытаться получить к ним доступ! Если такой переменной не существует, PHP будет выводить свои предупреждения, где ожидается код JavaScript: верный способ разрушить ваш день.

+0

Благодарим за помощь, но когда я не добавляю двойные кавычки Ошибка Fire дает синтаксическую ошибку с отсутствующими кавычками, и когда я их добавляю, она дает синтаксическую ошибку, подобную этой: Panel_brand_type [i] = "" value " «; Какие-либо предложения? – notknown7777

+0

@HarmenBrinkman: Если переменные существуют в PHP, нет ничего, что могло бы привести к ошибке JS (даже если строка не является UTF-8, что приведет к значению «null» вместо ошибки). Поэтому единственным логическим объяснением является то, что вы вводите значения переменных, которые не существуют. – Jon

+0

По какой-то причине он работает сейчас, без дополнительной экономии или других изменений, я буду отмечать это как ответ! Большое спасибо! – notknown7777

Смежные вопросы