Autor | Zpráva | ||
---|---|---|---|
Michales Profil |
#1 · Zasláno: 21. 2. 2015, 16:50:36
Dobrý den,
následující script mi hlásí v konzoly: TypeError: document.getElementById(...) is null <script type="text/javascript"> function myFunction() { var id = document.getElementById("id").value; var dataString = 'id1=' + id; { // AJAX code to submit form. $.ajax({ type: "POST", url: "lyrics.php", data: dataString, cache: false, success: function(html) { $("#test").html(response); } }); } return false; } </script> <td><a onclick="myFunction()" id="<?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?>"><?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?></a></td> Můžete mi poradit jak to opravit? Děkuji |
||
Radek9 Profil |
Michales:
Opravdu máš na stránce element, který má id "id" ?
|
||
Michales Profil |
#3 · Zasláno: 21. 2. 2015, 16:56:22
Radek9:
v id je proměnná <?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?>
|
||
Radek9 Profil |
#4 · Zasláno: 21. 2. 2015, 16:57:45
Michales:
O tomhle elementu nemluvím. Podle kódu chceš přistupovat k nějakému formulářovému prvku, nebo se pletu? |
||
Michales Profil |
#5 · Zasláno: 21. 2. 2015, 16:59:34
Radek9:
Potřebuji po kliku na tento řádek: <td><a onclick="myFunction()" id="<?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?>"><?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?></a></td>
Poslat ajaxem proměnou id do souboru lyrics.php |
||
Keeehi Profil |
#6 · Zasláno: 21. 2. 2015, 17:03:38
<a onclick="myFunction(this)" .... <script type="text/javascript"> function myFunction(e) { var dataString = 'id1=' + e.id; $.ajax({ type: "POST", url: "lyrics.php", data: dataString, cache: false, success: function(html) { $("#test").html(response); } }); return false; } </script> |
||
Radek9 Profil |
Michales:
Aha, už to chápu. V tom případě také není absolutně vhodné používat atribut id (kvůli možným kolizím a chybám), ale spíš nějaký data atribut:
<td><a onclick="myFunction(this)" data-id="<?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?>"><?php echo htmlSpecialChars($result['Title'],ENT_QUOTES); ?></a></td> function myFunction(e) { var dataString = 'id1=' + e.getAttribute("data-id"); … |
||
Michales Profil |
#8 · Zasláno: 21. 2. 2015, 17:07:37
Keeehi:
Děkuji moc, teď mi to háže chybu ReferenceError: response is not defined |
||
Radek9 Profil |
#9 · Zasláno: 21. 2. 2015, 17:09:27
Michales:
Protože proměnná response neexistuje. Zkus se nad těmi chybami sám zamyslet. Parametrem té callback funkce je html .
|
||
Michales Profil |
#10 · Zasláno: 21. 2. 2015, 17:22:18 · Upravil/a: Michales
Radek9:
Opraveno takto: success: function(data) { $("#test").append(data); } A když kliknu postupně na všech 14 řádků, jsou zobrazené informace ze všech 14 řádků. Měla by se zobrazovat vždy jen ta informace k řádku na který je kliknuto. Lze to také nějak řešit pomocí javascriptu? Děkuji za radu a za předešlou pomoc už vím, místo append má být html ;-)
|
||
Časová prodleva: 9 let
|
0