PHP in javascript
Als ik PHP in een Javascript code zet wil hij hem niet laden. En ik zie het probleem
niet in mijn code. Misschien jullie wel? Dit is de code:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = mysql_query('SELECT * FROM songs WHERE ind = "true" ') or trigger_error(mysql_error());
while($fetch = mysql_fetch_array($sql)) {
?>
song[<?php echo $fetch['id']; ?>]="<?php echo $fetch['link'].';'.$fetch['artiest'].';'.$fetch['titel']; ?>"
<?php
}
?>
$sql = mysql_query('SELECT * FROM songs WHERE ind = "true" ') or trigger_error(mysql_error());
while($fetch = mysql_fetch_array($sql)) {
?>
song[<?php echo $fetch['id']; ?>]="<?php echo $fetch['link'].';'.$fetch['artiest'].';'.$fetch['titel']; ?>"
<?php
}
?>
Gewijzigd op 16/10/2012 17:30:19 door Remco van Akker
Gewijzigd op 16/10/2012 16:27:10 door - Ariën -
Kort antwoord: Nee.
Langer antwoord: PHP is serverside, dat betekent dat de clientside talen geen invloed kunnen hebben op PHP. Javascript word pas later uitgevoerd dan de PHP. Altijd
Gewijzigd op 16/10/2012 16:39:26 door Albert de Wit
Wat je wilt kan inderdaad wel. Je vult je JS met waardes uit PHP.
Ergens gaat dat stukje fout.
Dus kan je de broncode laten zien van een pagina die is geladen. Enkel de broncode van function getSong() { is voldoende.
Albert de Wit op 16/10/2012 16:39:08:
Ik heb je code niet bekeken maar ik denk dat je bedoelt dat als er een statement true is dat er dan php uitgevoerd moet worden?
Kort antwoord: Nee.
Langer antwoord: PHP is serverside, dat betekent dat de clientside talen geen invloed kunnen hebben op PHP. Javascript word pas later uitgevoerd dan de PHP. Altijd
Kort antwoord: Nee.
Langer antwoord: PHP is serverside, dat betekent dat de clientside talen geen invloed kunnen hebben op PHP. Javascript word pas later uitgevoerd dan de PHP. Altijd
Hij vult alleen een JS array met PHP-generated output op, en dat kan best....
Gewijzigd op 16/10/2012 16:43:54 door - Ariën -
Kan je even mijn reactie van 16:26:39 doorlezen, en je topicstart aanpassen?
Dus weergeeft die het als tekst.
Hier is een link naar de code in pastebin:
http://pastebin.com/36kkf0S8
Gewijzigd op 16/10/2012 17:20:18 door - Ariën -
Quote:
//Speel laatste liedje
function playPreviousSong() {
moveList = false;
count += 1
song = $.cookie("song" + count);
if (song == ";;") {
count -= 1
alert(lineNoPreviousSong);
} else {
loadPlayer(song);
}
function playPreviousSong() {
moveList = false;
count += 1
song = $.cookie("song" + count);
if (song == ";;") {
count -= 1
alert(lineNoPreviousSong);
} else {
loadPlayer(song);
}
moet dus worden
Het gaat om het javascript met de PHP er in.
Als ik de php er uit haal en ik voeg liedjes toe
in de code gaat die weer snel. Maar als ik het via
database wil doen gaat die hem nooit laden.
Gewijzigd op 16/10/2012 17:23:37 door Remco van Akker
Remco van Akker op 16/10/2012 17:23:07:
Tja ik weet niet wat je wil met minder regels?
Niemand heeft er wat aan? Als jij een defecte telefoon hebt, neem je toch ook niet je hele huis mee naar de telecomwinkel. Maf voorbeeld, maar dit bedoelen we dus. Dat je alleen de nodige code laat zien.
Verder zie ik in je source dat de JS-array gewoon volgegooid wordt door je script.
Dus het lijkt te werken?
Wel mist er foutafhandeling. iets dat je consequent ALTIJD in hoort te bouwen.
Ook mist er een punt-komma na je JS-array elementen.
Gewijzigd op 16/10/2012 17:27:49 door - Ariën -
Heb je gelijk in maar wat wil je dan hebben?
Alleen de PHP code? Of iets anders?
Maar de pagina laad wel gewoon bij jullie?
Gewoon even snel een vraagje hoor, is dit wel echt jouw code? Want als je niet snapt waarom hij hem niet wilt afspelen, hoe weet je dan dat dit wel werkt, en waarom heb je het dan geschreven?
Remco van Akker op 16/10/2012 17:27:06:
@Aar
Heb je gelijk in maar wat wil je dan hebben?
Alleen de PHP code? Of iets anders?
Maar de pagina laad wel gewoon bij jullie?
Heb je gelijk in maar wat wil je dan hebben?
Alleen de PHP code? Of iets anders?
Maar de pagina laad wel gewoon bij jullie?
Je kan toch zelf zien wat wel en niet nodig is voor je vraagstelling?
het antwoord is al eenvoudig van je vraag te beantwoorden.
Ook mist er een punt-komma na je JS-array elementen, zie ik! Voeg deze eens toe.
Gewijzigd op 16/10/2012 17:29:50 door - Ariën -
Remco van Akker op 16/10/2012 17:27:06:
Maar de pagina laad wel gewoon bij jullie?
Wat bedoel je daarmee? Dat de pagina bij jou niet wilt laden en je vraagt ons of hij bij ons wel wilt laden?
Ik heb een sterk vermoeden dat het in de id zit die aan de js script array wordt doorgegeven. Arrayes met numerieke keys moeten in JS bij 0 beginnen en dan telkens met 1 oplopend.
De puntkomma heeft niet geholpen jammer genoeg :(
@Albert de Wit
Ja. Ja dat klopt.
@Ger
Ligt het niet aan.
De toegevoegde nummer beginnen gewoon vanaf 0
en lopen op met 1.
Toevoeging op 16/10/2012 17:52:02:
EDIT:
Raar! Als ik de browser afsluit en ik start hem weer op
en ga naar de website dan doet die het. Druk ik op F5 blijft
die weer haken :S Maar dit is de output in de broncode:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
//Willekeurig liedje genereren
function getSong() {
song[0]="Aq9ZG3mHxV8&feature=plcp;ClubmusicMixes;Dance mix"
song[1]="UW3NL-PeoiQ&feature=related;Electro House;Dance"
song[2]="9bZkp7q19f0;PSY;Gangnamstyle"
var songToPlay = song[Math.round(Math.random() * 445)];
return songToPlay;
}
</script>
//Willekeurig liedje genereren
function getSong() {
song[0]="Aq9ZG3mHxV8&feature=plcp;ClubmusicMixes;Dance mix"
song[1]="UW3NL-PeoiQ&feature=related;Electro House;Dance"
song[2]="9bZkp7q19f0;PSY;Gangnamstyle"
var songToPlay = song[Math.round(Math.random() * 445)];
return songToPlay;
}
</script>
Gewijzigd op 16/10/2012 17:52:34 door Remco van Akker
als ik hem open doet hij het gewoon hoor? waarom geef je dit niet aan bij je vraag?
Er moesten meer liedjes toegevoegd worden
en ik zag dat een javascript file een verkeerde src had.
Toch hartelijk bedankt iedereen!