[PHP & JS]

Pagina: 1
Acties:
  • 170 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
Ik heb onderstaande code..
Nu wil ik de output dat PHP geeft in de message[]-vars zetten, hoe moet ik dit doen?

Ik heb geprobeerd om aan $inhoud een cijfer mee te geven d.m.v $i=0; en $i++; om vervolgens de variabele $i in die var message[] te gooien, dit werkt niet, hoe kan ik dit oplossen?

de eerste row uit de database ($inhoud) moet dus in message[0], de 2e $inhoud moet in message[1] etc...

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?PHP
$query = mysql_query("SELECT * FROM r_smsbalk WHERE keyword='relaxuh' ORDER BY id DESC LIMIT 15");
while($object = mysql_fetch_assoc($query)){
    //onnodige code weggelaten (gebruikersnaam etc. ophalen)
    $inhoud = '<table cellspacing="0" cellpadding="0">';
    $bericht = $object['type'];
                //hier onnodige code weggelaten om smilies te genereren
    $inhoud.= '<tr><td width="110">&nbsp;'.$url.'[img]"images/leden/'.$foto.'"[/img]'.$url_sluit.'</td><td valign="top" width="110"><b>'.$url.$gebruikersnaamu.'</b><BR>'.$bericht.$url_sluit.'</td></tr><tr><td colspan="2"><BR></td></tr>';                           
    $inhoud.= '</table>';
}
?>

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">

//configure the below five variables to change the style of the scroller
var scrollerdelay='3000' //delay between msg scrolls. 3000=3 seconds.
var scrollerwidth='540px'
var scrollerheight='105px'
var scrollerbgcolor='white'
//set below to '' if you don't wish to use a background image
var scrollerbackground=''

//configure the below variable to change the contents of the scroller
var messages=new Array()
messages[0]="<font face='Arial'><a href='http://www.dynamicdrive.com'>Click here to go back to Dynamicdrive.com frontpage</a></font>"
messages[1]="<font face='Arial'><a href='http://javascriptkit.com'>Visit JavaScriptKit for award winning JavaScript tutorials</a></font>"
messages[2]="<font face='Arial'><a href='http://www.codingforums.com'>Get help on scripting and web development. Visit CodingForums.com!</a></font>"

///////Do not edit pass this line///////////////////////
//code weggelaten
</script>

[ Voor 123% gewijzigd door robg1984 op 14-12-2004 15:52 . Reden: topictitel? ]


Acties:
  • 0 Henk 'm!

  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-09 11:59
Mis je toevallig een " . " <<punt>> achter de eerste $inhoud binnen de while loop??

Jan-Willem


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
nee dat maakt niks uit want hij begint in de while met het maken $inhoud, vervolgens voegt hij daar info aan toe met $inhoud.= aan het einde van die loop begint hij daar weer mee overnieuw, dan set hij $inhoud overnieuw...

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 13:32

Creepy

Tactical Espionage Splatterer

robg1984 schreef op dinsdag 14 december 2004 @ 15:18:
Ik heb geprobeerd om aan $inhoud een cijfer mee te geven d.m.v $i=0; en $i++; om vervolgens de variabele $i in die var message[] te gooien, dit werkt niet, hoe kan ik dit oplossen?
Wat werkt er niet aan? Krijg je een foutmelding? Zo ja welke?

Daarnaast post je wel erg veel code. Kan je dit inkorten toch echt alleen de relevenate code? Kijk daarnaast eens naar string concatenation zodat je iets krijgt ala
PHP:
1
2
3
4
5
6
7
8
$i = 0;

while ($i < 10)
{
  echo 'messages[' . $i . ']="Tekst uit de database"'; 

  $i++
}

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 14:27
Als je nou gewoon een array ($messages) maakt met de berichten die in je JS moeten komen en dan in js het volgende zet:
PHP:
1
2
3
4
5
6
<?php
foreach ($messages as $key => $message)
{
   echo 'messages[' .$key .'] = "' .$message .'"';
}
?>


Als het JS in een apart bestand staat kun je ook gewoon van het js een bestand een php bestand maken en de juiste header meegeven.
PHP:
1
header('Content-type: application/x-javascript');

[ Voor 11% gewijzigd door T-MOB op 14-12-2004 15:30 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
ik heb de code niet nodig is weggehaald..
ik krijg geen foutmelding, er komt niks op het scherm...
ik zal eens proberen wat jij zegt...

Acties:
  • 0 Henk 'm!

  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-09 11:59
robg1984 schreef op dinsdag 14 december 2004 @ 15:26:
nee dat maakt niks uit want hij begint in de while met het maken $inhoud, vervolgens voegt hij daar info aan toe met $inhoud.= aan het einde van die loop begint hij daar weer mee overnieuw, dan set hij $inhoud overnieuw...
Dacht dat dat niet de bedoeling was, maar oke !

Jan-Willem


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:23

RM-rf

1 2 3 4 5 7 6 8 9

Wat je wilt doen is ouptut genereren als bv:

JavaScript:
1
2
message[0] = "<table><tr><td>bladiebla</td></tr></table>";
message[1] = "<table><tr><td>bladiebla</td></tr></table>";


dat moet in php toch niet zo moeilijk zijn..?
PHP:
1
 echo "message[".$i."] = \"<table><tr><td>bladiebla</td></tr></table>\";\n",


voldoet dan toch al?

war je hooguit op moet letten is dat javascript variabelen geen linebreaks mogen bevatten, ofwel je haalt alle linebreaks uit de php-variabele, ofwel je vervangt deze door een \ precies aan het einde van de regel, daarmee escape je als het ware de linebreak en accepteerd de javascript-engine hem gewoon als karakter...

een tweede punt, het gebruikte javascript is nogal verouderd, dit kan momenteel waarschijnlijk gewoon veel optimaler, niet door hele lappen code in variabelen te stoppen, maar door gewoon HTML-elementen daarvoor te gebruiken
HTML:
1
2
3
4
5
6
<div id="hiddenContent" style="display: none;">
   <div>je eerste verstopte content</div>
   <div>je tweedeverstopte content</div>
   <div>je derdeverstopte content</div>
   <div>je vierdeverstopte content</div>
</div>


in je script kan je gewoon de extra content opvragen door document.getElementById('hiddenContent').childNodes.item( n ).innerHTML op te vragen

[ Voor 33% gewijzigd door RM-rf op 14-12-2004 15:33 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

de HTML (en JS) die je nu hebt staan include()-n als output (of kopiëren onderin je file, met de volgende wijziging:
code:
1
2
3
4
5
messages[0]="<font face='Arial'><a href='http://www.dynamicdrive.com'>Click here to go back to Dynamicdrive.com frontpage</a></font>"
messages[1]="<font face='Arial'><a href='http://javascriptkit.com'>Visit JavaScriptKit for award winning JavaScript tutorials</a></font>"
messages[2]="<font face='Arial'><a href='http://www.codingforums.com'>Get help on scripting and web development. Visit CodingForums.com!</a></font>"
messages[3]="<font face='Arial'><a href='http://www.freewarejava.com'>Looking for Free Java applets? Visit Freewarejava.com!</a></font>"
messages[4]="<font face='Arial'><a href='http://dynamicdrive.com/link.htm'>If you find this script useful, please click here to link back to Dynamic Drive!</a></font>"

vervangen door
code:
1
<? echo($messages); ?>


$messages genereer je dan als volgt:
(ik veronderstel nu $messages is eerst leeg, en $i is eerst 0)
code:
1
2
3
4
5
6
7
8
9
10
while($object = mysql_fetch_assoc($query)){ 
    //onnodige code weggelaten (gebruikersnaam etc. ophalen) 
    $inhoud = '<table cellspacing="0" cellpadding="0">'; 
    $bericht = $object['type']; 
                //hier onnodige code weggelaten om smilies te genereren 
    $inhoud.= '<tr><td width="110">&nbsp;'.$url.'[img]"images/leden/'.$foto.'"[/img]'.$url_sluit.'</td><td valign="top" width="110"><b>'.$url.$gebruikersnaamu.'</b><BR>'.$bericht.$url_sluit.'</td></tr><tr><td colspan="2"><BR></td></tr>';                             
    $inhoud.= '</table>'; 
    $messages = $messages ."messages[$i] = \"$inhoud\"\n";
    $i++;
}


PS. ik hoop dat \n geldig escape teken is voor newline (mijn PHP kennis is wat verstoft :P)

-niks-


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?PHP
$query = mysql_query("SELECT * FROM r_smsbalk WHERE keyword='relaxuh' ORDER BY id DESC LIMIT 15");
$messages=array();
while($object = mysql_fetch_assoc($query)){
    $inhoud = '<table cellspacing="0" cellpadding="0">';
    $inhoud.= '<tr><td width="110">&nbsp;'.$url.'[img]"images/leden/'.$foto.'"[/img]'.$url_sluit.'</td><td valign="top" width="110"><b>'.$url.$gebruikersnaamu.'</b><BR>'.$bericht.$url_sluit.'</td></tr><tr><td colspan="2"><BR></td></tr>';                           
    $inhoud.= '</table>';
    $messages[] = $inhoud;
}
//print_r($messages);
?>

code:
1
2
3
4
5
6
7
8
//configure the below variable to change the contents of the scroller
var messages=new Array()
<?php 
foreach ($messages as $key => $message) { 
    echo 'message[' .$key .'] = "' .$message .'"'; 
} 
?>
///////Do not edit pass this line///////////////////////


ik krijg niks te zien, als ik die messages-array echo met print_r dan zit er wel inhoud in...

@RM-rf: maar zie hij er dan ook hetzelfde uit als de code die ik gebruik?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

robg1984 schreef op dinsdag 14 december 2004 @ 15:18:
FOUTJE: GEEN GOEDE TITEL, KAN IK NIET WIJZIGEN, MIJN EXCUSES...
[/code]
.oisyn schreef op zondag 09 mei 2004 @ 23:40:
Mocht je het zelf nou zien dat je een topictitel vergeten bent, ga dan niet heel stom je bericht lopen editten met iets als

[...]

Daar hebben wij namelijk weinig aan :P. Omdat de mods dan zelf een titel moeten verzinnen, en daardoor eerst de topicstart door moeten lezen, zodat het niet even snel geedit kan worden door een mod die toevallig even langs kwam en weinig tijd had. Dus, als je het ziet, bedenk dan meteen een titel en zet het erbij in je topic of via een topicreport (de [afbeelding]-knop bovenaan je topic), zodat een mod de titel meteen kan aanpassen. Dank u :)
Oftewel; geef even een goede titel aan via de topicreport :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
sorry zal het doen
-> ik zie dat icoontje niet staan?

[ Voor 50% gewijzigd door robg1984 op 14-12-2004 15:45 ]


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 01:32

alienfruit

the alien you never expected


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 14:27
robg1984 schreef op dinsdag 14 december 2004 @ 15:40:
ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?PHP
$query = mysql_query("SELECT * FROM r_smsbalk WHERE keyword='relaxuh' ORDER BY id DESC LIMIT 15");
$messages=array();
while($object = mysql_fetch_assoc($query)){
    $inhoud = '<table cellspacing="0" cellpadding="0">';
    $inhoud.= '<tr><td width="110">&nbsp;'.$url.'[img]"images/leden/'.$foto.'"[/img]'.$url_sluit.'</td><td valign="top" width="110"><b>'.$url.$gebruikersnaamu.'</b><BR>'.$bericht.$url_sluit.'</td></tr><tr><td colspan="2"><BR></td></tr>';                           
    $inhoud.= '</table>';
    $messages[] = $inhoud;
}
//print_r($messages);
?>

code:
1
2
3
4
5
6
7
8
//configure the below variable to change the contents of the scroller
var messages=new Array()
<?php 
foreach ($messages as $key => $message) { 
    echo 'message[' .$key .'] = "' .$message .'"'; 
} 
?>
///////Do not edit pass this line///////////////////////


ik krijg niks te zien, als ik die messages-array echo met print_r dan zit er wel inhoud in...

@RM-rf: maar zie hij er dan ook hetzelfde uit als de code die ik gebruik?
message[] != messages[] (das dus in regel 5 van je twwede stukje code...

[ Voor 20% gewijzigd door T-MOB op 14-12-2004 16:02 ]

Regeren is vooruitschuiven

Pagina: 1