Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Ve scriptu více proměnných

Aktivity
Avatar
michales
Člen
Avatar
michales:13.7.2015 20:59

Ahoj mám tento script:

function keyWordsearch(){
        gapi.client.setApiKey(\'AIzaSyB7oqNYxEGnskHEpKHSCbIH_-VI4_sJkzg\');
        gapi.client.load(\'youtube\', \'v3\', function() {
                makeRequest();
        });
}
    function makeRequest() {
        var q = $(\'#query\').val();
        var request = gapi.client.youtube.search.list({
                q: q,
                part: \'snippet\',

                maxResults: 1
        });
        request.execute(function(response)  {
                $(\'#results\').empty();
                var srchItems = response.result.items;
                $.each(srchItems, function(index, item) {


                vidThumburl =  item.snippet.thumbnails.default.url;
                vidTitle = item.snippet.title;
                vidThumbimg = \'<pre><iframe id="ytplayer" type="text/html" width="640" height="390"src="http://www.youtube.com/v/\'+ item.id.videoId+\'" frameborder="0"/></pre>\';


              $(\'#results\').append(\'<pre>\' + vidTitle + vidThumbimg +  \'</pre>\');
        });
    });
}

Naplňuji ho pomocí:

<td><label> <input id="query" value="'.$song['Title'].'-'.$song['Artist'].'" type="hidden"/><button id="search-button"   onclick="keyWordsearch()">Search</button></label> </td>

Jak docílit toho aby script bral v potez na co kliknu. Nyní ať kliknu na jakýkoliv řádek v tabulce vždy to bere proměnnou z prvního řadku.

Díky za radu

Odpovědět
13.7.2015 20:59
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Avatar
adder
Člen
Avatar
Odpovídá na michales
adder:13.7.2015 21:24

Ahoj,

místo id bych dal class, id je unikátní selektor, který by se měl vyskytovat na stránce pouze 1x a měl mít různé hodnoty. Proto ti to bere jen první hodnotu.

Nepůjde to následujícím způsobem?

var q = $(this).val();

Jinak moc nevím... :(

Nahoru Odpovědět
13.7.2015 21:24
I’m going to lay this brick as perfectly as a brick can be laid.
Avatar
michales
Člen
Avatar
Odpovídá na adder
michales:14.7.2015 6:23

Bohužel to nefunguje

Nahoru Odpovědět
14.7.2015 6:23
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na michales
David Hynek:14.7.2015 7:34

tak jestli dobře koukám, na tvé straně se jen vypisuje kód, který odněkud stáhneš. Takže případná tlačítka jsou v načítaném kódu. S tímhle ti si poradí jen tam odkud to stahuješ...

Nahoru Odpovědět
14.7.2015 7:34
Čím víc vím, tím víc věcí nevím.
Avatar
Odpovídá na michales
Neaktivní uživatel:14.7.2015 10:02

Ahoj, moc se mi v tom teď nechce šťárat, ale zkus parametr onclick změnit na

onclick="keyWordsearch(this)

a ve funkci poté dostaneš ten element, na který se kliklo. Pokud chceš tedy získat value z inputu vedle použij

$(this).parent().find('input').val();

Funkci tedy upravíš na

function keyWordsearch(element){
        gapi.client.setApiKey(\'AIzaSyB7oqNYxEGnskHEpKHSCbIH_-VI4_sJkzg\');
        gapi.client.load(\'youtube\', \'v3\', function() {
                makeRequest( $(this).parent().find('input').val() ); // Předáme přímo hodnotu
        });
}
    function makeRequest(q) {
        // V proměnné q je uložena hodnota, na kterou jsi klikl.
Nahoru Odpovědět
14.7.2015 10:02
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:14.7.2015 12:58

Omlouvám se, udělal jsem chybu. Akce onclick zůstává stejná, ale potom již nepoužiješ this, ale ten element...

$(element).parent().find('input').val();

tedy..

makeRequest( $(element).parent().find('input').val() ); // Předáme přímo hodnotu
Nahoru Odpovědět
14.7.2015 12:58
Neaktivní uživatelský účet
Avatar
michales
Člen
Avatar
Odpovídá na Neaktivní uživatel
michales:14.7.2015 13:21

Bohužel ani toto mi nefunguje.

echo'</td><td><label> <input id="query" value="'.$song['Title'].'-'.$song['Artist'].'" type="image" name="query" onclick="keyWordsearch(this)" src="img/play.png" width="20"/></label> </td

js:

function keyWordsearch(){
        gapi.client.setApiKey(\'AIzaSyB7oqNYxEGnskHEpKHSCbIH_-VI4_sJkzg\');
        gapi.client.load(\'youtube\', \'v3\', function() {
                makeRequest( $(element).parent().find(\'input\').val() );
        });
}
    function makeRequest() {
        var q = $(\'#query\').val();
        var request = gapi.client.youtube.search.list({
                q: q,
                part: \'snippet\',

                maxResults: 1
        });
Nahoru Odpovědět
14.7.2015 13:21
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Avatar
Odpovídá na michales
Neaktivní uživatel:14.7.2015 13:30
function keyWordsearch(element){
        gapi.client.setApiKey(\'AIzaSyB7oqNYxEGnskHEpKHSCbIH_-VI4_sJkzg\');
        gapi.client.load(\'youtube\', \'v3\', function() {
                makeRequest( $(element).parent().find(\'input\').val() );
        });
}
    function makeRequest(q) {
        var request = gapi.client.youtube.search.list({
                q: q,
                part: \'snippet\',

                maxResults: 1
        });
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
14.7.2015 13:30
Neaktivní uživatelský účet
Avatar
michales
Člen
Avatar
Nahoru Odpovědět
14.7.2015 13:34
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.