Помогите с экранированием кавычек разобратся

T
На сайте с 02.02.2015
Offline
35
653


return '<script src="http://site.ru/js/ref.js"></script>
<script type="text/javascript">
var product_id = "'.$ofer.'";
var ref = "13077";
var script = document.createElement("script");
script.src = "http://site.ru/send_order/?ref="+ref+"&s="+getC("s")+"&w="+getC("w")+"&t="+getC("t")+"&product_id="+product_id+\'&out=1\';
document.body.appendChild(script);
</script>';

как я только не пробовал экранировать кавычки код на страницу выводится как есть. Вместо значений переменных имена выводятся

ref="+ref+"&s="+getC("s")+"&w="+getC("w")+"&t="+getC("t")+"&product_id="+product_id+\'&out=1\'
прям так и выводится
LovelAss
На сайте с 05.06.2009
Offline
96
#1

Если getC пхпшная функция, то пробуйте такой вариант:


return '<script src="http://site.ru/js/ref.js"></script>
<script type="text/javascript">
var product_id = "'.$ofer.'";
var ref = "13077";
var script = document.createElement("script");
script.src = "http://site.ru/send_order/?ref="+ref+"&s="'.getC("s").'"&w="'.getC("w").'"&t="'.getC("t").'"&product_id="+product_id+"&out=1";
document.body.appendChild(script);
</script>';
T
На сайте с 02.02.2015
Offline
35
#2
LovelAss:
Если getC пхпшная функция, то пробуйте такой вариант:

return '<script src="http://site.ru/js/ref.js"></script>
<script type="text/javascript">
var product_id = "'.$ofer.'";
var ref = "13077";
var script = document.createElement("script");
script.src = "http://site.ru/send_order/?ref="+ref+"&s="'.getC("s").'"&w="'.getC("w").'"&t="'.getC("t").'"&product_id="+product_id+"&out=1";
document.body.appendChild(script);
</script>';

php переменная тут только одна

var product_id = "'.$ofer.'";
все остальное как есть взято из API партнерки мне туда нужно передать только product_id и ref но в коде они так и выводятся ref="+ref+"&s= а должно быть ref=13077&s=
LovelAss
На сайте с 05.06.2009
Offline
96
#3
Tilo:
но в коде они так и выводятся ref="+ref+"&s=

В исходном коде так и должно быть, js код обрабатывается браузером.

В таком случае ошибка с кавычками у вас в только в конце строки \'&out=1\' - здесь должны быть двойные.

T
На сайте с 02.02.2015
Offline
35
#4
LovelAss:
В исходном коде так и должно быть, js код обрабатывается браузером.
В таком случае ошибка с кавычками у вас в только в конце строки \'&out=1\' - здесь должны быть двойные.

как так то? я задаю переменной var ref значение var ref = "13077"; соответственно на страницу должно вернуть это значение.

script.src = "http://site.ru/send_order/?ref=13077&s=
Правильно? А мне вместо значение возвращает обычный текст
script.src = "http://site.ru/send_order/?ref="+ref+"&s=


---------- Добавлено 26.08.2015 в 21:55 ----------

такое впечатление что что скрипт не понимает что ref это переменная
T
На сайте с 02.02.2015
Offline
35
#5

что то походу тут дело не в экранировании. с делал в отдельном файле

<?

$ofer = 123;
echo ('<script src="http://site.ru/js/m1ref.js"></script>
<script type="text/javascript">
var product_id = '.$ofer.';
var ref = 13077;
var script = document.createElement("script");
script.src = "http://site.ru/send_order/?ref="+ref+"&s="+getC("s")+"&w="+getC("w")+"&t="+getC("t")+"&product_id="+product_id+\'&out=1\';
document.body.appendChild(script);
</script>
<div class="shop">
<form action="" method="post" onsubmit="if(this.name.value==\'\'){alert(\'Введите Ваше имя!\');return
false}if(this.phone.value==\'\'){alert(\'Введите Ваш номер телефона!\');return false}urlGen(this);return true;">
<input type="hidden" name="product_id" value="'.$ofer.'"/>
<input type="hidden" name="ref" value="13077"/>
<input placeholder="ФИО" maxlength="25" name="name" type="text">
<input placeholder="Телефон" maxlength="25" name="phone" type="text">
<button type="submit">Заказать!</button>
</form>
</div>');
?>
все работает а на странице не работает почему то движок WP пытаюсь запихать форму в шорткод, js подгружается с API партнерки help me

---------- Добавлено 27.08.2015 в 01:46 ----------

ситуация малясь проясняется что то сразу я не заметил этого момента не либо
document.createElement("script");
либо
document.body.appendChild(script);
а вот как проверить кто из них не работает ? то есть как узнать элемент не выводится или же он тупо даже не создается?
T
На сайте с 02.02.2015
Offline
35
#6

всем спасибо разобрался сделал пустое echo до вывода скрипта и все встало не свои места

siv1987
На сайте с 02.04.2009
Offline
427
#7
Tilo:
как так то? я задаю переменной var ref значение var ref = "13077"; соответственно на страницу должно вернуть это значение.

Не должно. На странице она так и остается переменной. Значение переменной возвращается при компиляции js. А на странице значение у вас есть в переменной ref.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий