Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij také nabídku 50% zdarma na e-learningové kurzy.
C# week

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
Redaktor
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
Aaron
Redaktor
Avatar
Odpovídá na michales
Aaron: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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Aaron
Redaktor
Avatar
Odpovídá na Aaron
Aaron: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
Avatar
michales
Člen
Avatar
Odpovídá na Aaron
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
Aaron
Redaktor
Avatar
Odpovídá na michales
Aaron: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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět
14.7.2015 13:30
Avatar
michales
Člen
Avatar
Odpovídá na Aaron
michales:14.7.2015 13:34

Děkuji.

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.