2013-05-10 2 views
1

Почему это не работает?Javascript php переменная, не проходящая с http_build_query

var data1 = "<? http_build_query($_GET); ?>"; 
    var data2 = "buy.php?"; 
    var url = data2+data1 
    document.getElementById('framebox').src = url; 

Спасибо.

+0

Что вы имеете в виду, что не работает? Это крушение? Передайте неправильную переменную? Правильная переменная в неправильном месте? Получить неверные данные? – andrewsi

+0

Какая ошибка у вас? И что делает $ _GET? – Borniet

+0

он не добавляет key1 = value1 & key2 = value2 & ... после buy.php? – Laurent

ответ

3

Поскольку data1 пуст (PHP не outputing ничего), попробуйте:

var data1 = "<?= http_build_query($_GET); ?>"; // or 
var data1 = "<?php echo http_build_query($_GET); ?>"; 

Любая причина вы используете PHP для создания строки запроса вместо того, чтобы делать это непосредственно в JavaScript?

+2

Довольно уверен, что вы также можете использовать '$ _SERVER ['QUERY_STRING']' – andlrc

+0

, это работает просто отлично! – Laurent

+0

@NULL: О да, я даже не рассматривал его на PHP. Тем не менее, если он ранее манипулировал $ _GET, лучше оставить его как есть. О, и http_build_query() использует '&' вместо '&' по умолчанию. –

1

Вы также можете архивировать его на обычный старый чистый яваскрипт пути:

var data1 = location.href.split('?').pop(); 
var data2 = "buy.php?"; 
var url = data2+data1 
document.getElementById('framebox').src = url; 

Но гораздо более интересно смешивать вещи .....

+0

А, вот что я собирался опубликовать! :П –

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