2013-11-19 1 views
0

Я пытаюсь передать строку запроса из URL-адреса в функцию Javascript, но я ничего не работаю. Я использую PHP для генерации кода Javascript.Передача строки запроса URL-адреса в функцию Javascript

Если у меня есть следующий URL:

www.testing.com/?test=5

Я хочу, чтобы функция вывода следующий код:

"googletag.pubads().setTargeting("test","5");', 'close');" 

Я попытался добавления PHP кода, используя echo $_GET["test"], но вместо отображения значения , он отображает $_GET["test"]. Я даже попытался создать пользовательскую функцию в Javascript, которая собирает строку запроса URL, и когда я пытаюсь ее отобразить, она просто выводит имя переменной, но не само значение. Кто-нибудь знает, что я делаю неправильно, и есть идеи, как исправить эту проблему?

Ниже функция:

function google_admanager_dfp_add_js($js = NULL, $type = 'slot') { 
    static $ga_js = array(); 

    // add the js to a type 
    if (isset($js) && isset($type)) { 
     $ga_js[$type][] = $js; 

     //add the init and service scripts the first time this is run 
     if (!isset($ga_js['service'])) { 

      if (variable_get('google_admanager_dfp_useasync', FALSE)) { 
       google_admanager_dfp_add_js("var googletag = googletag || {};googletag.cmd = googletag.cmd || [];", 'service'); 
       google_admanager_dfp_add_js("(function() {var gads = document.createElement('script');gads.async = true;gads.type = 'text/javascript';var useSSL = 'https:' == document.location.protocol;gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';var node = document.getElementsByTagName('script')[0];node.parentNode.insertBefore(gads, node);})();", 'service'); 

       google_admanager_dfp_add_js("googletag.cmd.push(function() {", 'pre'); 
       google_admanager_dfp_add_js("googletag.enableServices(); });", 'close'); 

      } else { 
       google_admanager_dfp_add_js('(function() {var useSSL = \'https:\' == document.location.protocol;var src = (useSSL ? \'https:\' : \'http:\') +\'//www.googletagservices.com/tag/js/gpt.js\';document.write(\'<scr\' + \'ipt src="\' + src + \'"></scr\' + \'ipt>\');})();', 'service'); 

       // set the close script to fetch the ads. 

       if (isset($_GET["test"])) { 

        // Line in question is below -> 
        google_admanager_dfp_add_js('googletag.pubads().setTargeting("test","");', 'close'); 
       } 
       google_admanager_dfp_add_js('googletag.pubads().enableSyncRendering();googletag.enableServices();', 'close'); 
      } 

     } 
     return; 
    } 

ответ

0

Вы можете получить пару с помощью location.search, как это:

var query = window.location.search.substring(1); 
var pair = query.split("="); 

// ... 
// Line in question is below -> 
google_admanager_dfp_add_js('googletag.pubads().setTargeting('+pair[0]+','+pair[1]+');', 'close'); 

pair[0] будет test и pair[1] будет 5.

+0

Когда я добавляю свой код, я получаю следующую ошибку: Ошибка синтаксиса: неожиданная '[' для этой строки: google_admanager_dfp_add_js ('googletag.pubads(). SetTargeting (' + pair [0] + ',' + пара [1] + ');', 'close'); – user3006972

0

http://www.mathias-bank.de/2007/04/21/jquery-plugin-geturlparam-version-2/

помогли мне сделать только то, что вы ищете в простой .js файл.

кредит для банка Mathias, который его создал.

+0

Хм .. Я надеялся сделать это в прямом javascript или PHP, поэтому мне не нужно было бы иметь другую js-библиотеку или файл ... – user3006972

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