Avatar billede gider_ikke_mere Nybegynder
31. januar 2005 - 00:35 Der er 7 kommentarer og
1 løsning

Hente data i mysql via Javascript eller lignende

Jeg har en htmlside med lidt Javascript, hvor jeg skal hente en tekst fra en MYSQL database. Det drejer sig kun 1 "celle"

Det er udelukket at lave html'en om til PHP

Kan det lade sig gøre?

Historien er at jeg via en administratorside for websiden, lavet i PHP, kan ændre en tekst som ruller kontinuerligti statusbaren på hjemmesiden. Nu skal jeg bare have fundet ud af at hente teksten i MYSQL ved load af hjemmesiden.

Scriptet ser således ud:

<script language="JavaScript">


msg = "    Velkommen til ...    ";
msgud = "";

function StatusBarScroll() {
  if (msgud.length < msg.length)
    msgud += msg;
  msgud = msgud.substr(1);
  window.status = msgud.substring(0, msg.length);
  window.setTimeout("StatusBarScroll()", 250);
}
</script>
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 00:38 #1
Du kan _IKKE_ bruge javascript til at arbejde med databaser, og derfor ikke MySQL

Dette skal man bruge et serverside script til , dvs. PHP , ASP, JPS eller PERL
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 00:40 #2
men du kan lave

<?

$q = mysql_query("SELECT tekst FROM dintabel");
$data = mysql_fetch_array($q);

?>
<script language="JavaScript">

msg = "<? echo $data['tekst'];?> ";

....

eller lign.
Avatar billede olebole Juniormester
31. januar 2005 - 18:44 #3
<ole>

alister_crowley >> Jo, man kan hente data med XML i JScript/JavaScript, alt efter browser - og man kan hente via en remote JavaScript-fil  :)

akyhne >> Hvordan skal det mere præcist bruges?

/mvh
</bole>
Avatar billede gider_ikke_mere Nybegynder
31. januar 2005 - 20:35 #4
msg = "    Velkommen til ...    ";
skal erstattes af

var besked = 'den tekst der hentes i databasen på en eller anden måde'
msg = besked;

Jeg har oprettet en tabel med 2 felter
tabellen hedder rulletekst
felterne hedder itemId og rulletekstId. Værdierne er hhv. 1 & 'teksten der skal rulle'

I andre tabeller henter jeg dataene med:

<?php
    $conn = mysql_connect("sqlhost.skjult.dk", "skjult", "skjult");
mysql_select_db("skjult");
    $result = mysql_query("select * from items order by skjultId asc");
?>

Rulleteksten står i en frame der er loadet på alle sider, d.v.s. rulleteksten løber på alle sider. Det er så meningen at når man går ind på forsiden af hjemmesiden skal teksten hentes fra databasen og forblive som en variabel under hele besøget.

Ideen med det hele er at ejeren for hjemmesiden selv kan ændre rulleteksten via en PHP side med Logon i stedet for at være afhængig af Webmaster. Dette er lavet!
Avatar billede olebole Juniormester
31. januar 2005 - 20:55 #5
<script type="text/JavaScript" src="http://www.domain.dk/js/bruger_js.php?id=1234"></script>

I din fil 'bruger_js.php' skriver du så:

----------------- HERUNDER ------------------
<?
Header( "Content-type: text/JavaScript" );
$myID = $_GET["id"];

// Fortag dit DB-opslag her og læg data i $data
?>
msg = "<?=$data["tekst"]?>";
msgud = "";

function StatusBarScroll() {
  if (msgud.length < msg.length)
    msgud += msg;
  msgud = msgud.substr(1);
  window.status = msgud.substring(0, msg.length);
  window.setTimeout("StatusBarScroll()", 250);
}
------------------ HEROVER ------------------

PS: Der skal _ikke_ være script-tags i filen.
Avatar billede gider_ikke_mere Nybegynder
31. januar 2005 - 21:30 #6
Hvis jeg erstatter msg = "<?=$data["tekst"]?>"; medmsg = "løbetekst";
... står der løbetekst som der skal. Men uanset hvor eller hvordan jeg erklærer $data
bliver denne ikke opfanget af scriptet. Jeg må sige jeg stadig mangler at finde ud af hvordan man erklærer variabler i html, PHP mm.
Skal ["tekst"] erstattes af noget andet?

Her er koden:

-------------------------------

<?
Header( "Content-type: text/JavaScript" );
$myID = $_GET["id"];

    $conn = mysql_connect("sqlhost.skjult.dk", "skjult", "skjult");
mysql_select_db("skjult");
    $result = mysql_query("select * from rulletekst order by rulletekstId asc");
?>
<?php   
while($row = mysql_fetch_array($result))
{
$data =  $row["rulletekstId"];
}

?>

msg = "<?=$data["tekst"]?>";
msgud = "";

function StatusBarScroll() {
  if (msgud.length < msg.length)
    msgud += msg;
  msgud = msgud.substr(1);
  window.status = msgud.substring(0, msg.length);
  window.setTimeout("StatusBarScroll()", 250);
}

-----------------------

og hvad skal $myID = $_GET["id"];
Avatar billede gider_ikke_mere Nybegynder
16. april 2005 - 08:56 #7
Smid et svar olebole
Avatar billede gider_ikke_mere Nybegynder
03. juni 2005 - 11:05 #8
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester