Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:30 Der er 10 kommentarer og
1 løsning

PHP sammen med Javascript?

Hey,

Jeg har et problem med at koble javascript og PHP sammen! Min ser således ud:

<?

$foresp = mysql_query("SELECT id, pic1, pic1spg, pic1url, pic2, pic2spg, pic2url, pic3, pic3spg, pic3url, pic4, pic4spg, pic4url, pic5, pic5spg, pic5url FROM banner WHERE id = '1' ORDER BY id DESC LIMIT 0, 1");

while($data = mysql_fetch_array($foresp)){

?>

<script language="JavaScript">
<!--

function SymError()
{
  return true;
}

window.onerror = SymError;

//-->
</script>

<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

bannerpics=new Array;
bannerurls=new Array;

<? if($data[pic1spg] == "1") { ?>
bannerpics[1]="images/banner/<?=$data[pic1]; ?>";
bannerurls[1]="banner/hits.php?ban=1";
<? } else { } ?>

<? if($data[pic2spg] == "1") { ?>
bannerpics[2]="images/banner/<?=$data[pic2]; ?>";
bannerurls[2]="banner/hits.php?ban=2";
<? } else { } ?>

<? if($data[pic3spg] == "1") { ?>
bannerpics[3]="images/banner/<?=$data[pic3]; ?>";
bannerurls[3]="banner/hits.php?ban=3";
<? } else { } ?>

<? if($data[pic4spg] == "1") { ?>
bannerpics[4]="images/banner/<?=$data[pic4]; ?>";
bannerurls[4]="banner/hits.php?ban=4";
<? } else { } ?>

<? if($data[pic5spg] == "1") { ?>
bannerpics[5]="images/banner/<?=$data[pic5]; ?>";
bannerurls[5]="banner/hits.php?ban=5";
<? } else { } ?>

num = Math.random();
num = 1 + ( num * ((bannerpics.length - 1)-1));
num = Math.round(num);

function ShowBanner() {
document.write("<a href='" + bannerurls[num] + "' target='_blank' >");
document.write("<img src='" + bannerpics[num] + "' border='0' >");
document.write("</a>");
}

bantal=new Array;

function ShowNum() {
document.write(num);
}

// Slut -->
</script>

<?

}

$bantop = "<script type=text/javascript>ShowNum()</script>";

if($bantop == 1){ mysql_query("UPDATE statistik SET topban1=topban1+1 WHERE id='1' ") or print mysql_error(); } else { }
if($bantop == 2){ mysql_query("UPDATE statistik SET topban2=topban2+1 WHERE id='1' ") or print mysql_error(); } else { }
if($bantop == 3){ mysql_query("UPDATE statistik SET topban3=topban3+1 WHERE id='1' ") or print mysql_error(); } else { }
if($bantop == 4){ mysql_query("UPDATE statistik SET topban4=topban4+1 WHERE id='1' ") or print mysql_error(); } else { }
if($bantop == 5){ mysql_query("UPDATE statistik SET topban5=topban5+1 WHERE id='1' ") or print mysql_error(); } else { }

?>
Avatar billede gil-galad Nybegynder
17. januar 2004 - 20:32 #1
hvad er dit problem?

(^^ikke ment på DEN måde... :-)
Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:32 #2
Mit problem består i at den ikke updatere i databasen (nederst i koden). If forudsætningen bliver altså ikke opfyldt.
Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:33 #3
Der må altså være noget galt med:

$bantop = "<script type=text/javascript>ShowNum()</script>";
Avatar billede razor Nybegynder
17. januar 2004 - 20:33 #4
Det er jo klart. Du sætter $bantop lige før:
$bantop = "<script type=text/javascript>ShowNum()</script>";
Avatar billede razor Nybegynder
17. januar 2004 - 20:34 #5
Du skal tænke på PHP som noget der bliver udførst før klienten får kilden at se. Serveren eksekverer jo ikke javascript koden, det gør klienten.
Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:35 #6
Razor>> Jamen, det er jo også meningen. Den sættes jo lige med det tilfældigt genererede tal, som er lavet i javascript!
Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:36 #7
Razor>> Hvad var din dybere mening så med det - set i forhold til dette problem?
Avatar billede razor Nybegynder
17. januar 2004 - 20:41 #8
At dit javascript udføres på klienten (i realtid) og at PHP bliver udført på serveren, i forespørgselsøjeblikket. Derfor kan du ikke sende data fra javascript til PHP direkte. Du bliver nødt til at genindlæse siden med en parameter i din forespørgsel, eller noget andet. Nu er jeg ikke javascript haj, men mon ikke du kan blive inspireret af det her:

window.location.href.replace('http://www.foo.dk/bar.php?bantop=' + ShowNum());

Så kunne du i PHP kigge om 'bantop' var at finde i forespørgslen, og hvis den var det opdatere din SQL, og ellers vise javascriptet.
Avatar billede razor Nybegynder
17. januar 2004 - 20:42 #9
(som sagt er jeg ikke javascript ekspert - jeg udelukker ikke der er fejl i det. Jeg tog det blot med for at give dig en idé :-))
Avatar billede sigmadk Nybegynder
17. januar 2004 - 20:42 #10
Tak, jeg prøver!
Avatar billede johslind Nybegynder
07. februar 2004 - 11:01 #11
Jeg har ikke afprøvet den metode, som razor nævner. Men der er i alt fald en anden, der virker, når det gælder om at få PHP og JavaScript til at udveksle variabler.
De har jo en fælles bekendt. Det er formularen. Via den kan JavaScript sende variabler til PHP - og omvendt.
Se evt www.hobugt.dk under "Eksperimenter"
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