Avatar billede h_thunbo Nybegynder
09. januar 2007 - 22:20 Der er 15 kommentarer og
1 løsning

php i <script>

Hej eksperter.
Jeg har et lille problem. Jeg indsætter noget i en MySQL db, og når jeg har gjort det, vil jeg gerne sendes videre til siden jeg har "lavet". måden jeg normalt gør det er ved at indsætte ?q=$code efter sidens navn. Men når det er i javascript kan jeg ikke bare gøre det. heller ikke selvom jeg sætter <? ?> rundt om. Hvad kan jeg så gøre?


?>
<script type="text/javascript">
    setTimeout("location.href=\'kunden.php?q=$code\'",1);
</script>
<?
Avatar billede htm Nybegynder
09. januar 2007 - 22:22 #1
?>
<script type="text/javascript">
    setTimeout("location.href=\'kunden.php?q=<?php echo $code; ?>\'",1);
</script>
<?php
Avatar billede timothy Nybegynder
09. januar 2007 - 22:22 #2
Har du husket at udskrive $code variablen?
Ala
?>
<script type="text/javascript">
    setTimeout("location.href=\'kunden.php?q=<?php echo $code;?>\'",1);
</script>
<?


?
Avatar billede h_thunbo Nybegynder
09. januar 2007 - 22:39 #3
Hmm.. måske har jeg ikke husket at udskrive $code??
Men altså, længere oppe på siden indsætter jeg $code i min db:


  $fields = "'','".$firmanavn1."','".$firmanavn2."','".$webpage."','".$cvrnr."','".$adresse."','".$postnr."','".$city."','".$kontaktperson."','".$tlfnr."','".$mobil."','".$email."','".$sidstdato."'";
  $session = mysql_connect("$SQLhost", "$SQLuser", "$SQLpass");
  mysql_select_db ("$DB");
  $query = "INSERT INTO $TABLE VALUES ($fields)";
  $insert = mysql_query ($query);
  mysql_close($session);

    if ($insert)
    $chk = 1;
  $act = "add";
?>
        <script type="text/javascript">
      setTimeout("location.href=\'kunden.php?q=<?php echo $code; ?>\'",1);
        </script>

<?
}

Eller også gør jeg ikke? Den indsætter jo sig selv, som den første altså...???
Avatar billede gentlebug Nybegynder
09. januar 2007 - 23:21 #4
er det ikke nemmere at sende en header?
- så kan folk uden javascript aktiveret (herunder mig) stadig navigere ordenligt rundt på dit website.
header("location: kunden.php?$code");
(Du må dog ikke >>udskrive<< noget før du sender en header, hvis du gør dette får du en "headers already sent..." fejl)
Avatar billede timothy Nybegynder
09. januar 2007 - 23:24 #5
(og det valgte "eksperten" at klippe væk så vi ikke kan se det..)

Men lige meget. I den øverste del er det en del af en php genereret streng. I den anden del skal det udskrives når scriptet kører.

Du skal enten udskrive dit js som en php streng (ala echo "<script>....</script>") eller explicit udskrive variablen som ovenfor
Avatar billede zynzz Praktikant
10. januar 2007 - 09:48 #6
måske:

<script type="text/javascript">
      setTimeout("location.href=kunden.php?q=<?=$code?>",1);
        </script>
Avatar billede netmania Nybegynder
10. januar 2007 - 14:35 #7
?>
<script type="text/javascript">
    setTimeout("location.href='kunden.php?q=<?php echo $code;?>'",1);
</script>
<?
Avatar billede netmania Nybegynder
10. januar 2007 - 14:35 #8
evt.
?>
<script type="text/javascript">
    setTimeout("location.href='kunden.php?q=<?php echo $code;?>';",1);
</script>
<?
Avatar billede h_thunbo Nybegynder
10. januar 2007 - 22:20 #9
Okay... Nu har jeg sat og rodet lidt med det, og faktisk så endte det med at det hele skulle stå således:
echo "<script type='text/javascript'>
        setTimeout('location.href=\'kunden.php?q=$code\'',1);
      </script>";
Alt det der med at lave <?php ?> o.lign det fungerede ikke i js.
Jeg er meget glad for der var så mange der svarede. Der var LIDT forskel på dem alle sammen, men den mest rigtige var jo timothy, så smider du ikke et svar?
men lige en bemærkning til dig svar, hvad mener du med:
(og det valgte "eksperten" at klippe væk så vi ikke kan se det..)
jeg er jo ikke eksperten ;-)
Avatar billede netmania Nybegynder
11. januar 2007 - 09:36 #10
Undskyld mange gange, men hvis du ikke har fået min kode til at virke, så er det altså din egen skyld!
Det fungerer for mig ;-)
Avatar billede zynzz Praktikant
11. januar 2007 - 10:02 #11
h_thubo det du skriver: "Der var LIDT forskel på dem alle sammen, men den mest rigtige var jo timothy", men altså der er ingen der er mere rigtig end den anden...

Men dette virker altså også:
<?=$code?>
Avatar billede netmania Nybegynder
11. januar 2007 - 10:18 #12
zynzz enig!
<?=$code?> virker...
men dit eksempel virker ikke...
setTimeout("location.href=kunden.php?q=<?=$code?>",1);
skal være
setTimeout("location.href='kunden.php?q=<?=$code?>'",1);

for at det kan virke... eller sagt med andre ord husk " og ' :-)
Avatar billede h_thunbo Nybegynder
11. januar 2007 - 16:32 #13
nå nå nå...
Jeg har kopieret min kode direkte fra kildekoden og siden virker.
I skal lægge mærke til der står echo " <script type='text/javascript'> osv... altså echo foran. Det står i php i forvejen så. Det kan godt være i har ret, kunne bare ikke få det til at fungere, først da jeg prøvede på den sidste måde.
Avatar billede phliplip Nybegynder
11. januar 2007 - 16:40 #14
Ikke for at være karl smart..

Men for at gøre din kode mere kompatibel, så skal du undlade at bruge

<?
og
<?=

brug altid <?php når du starter en PHP kodeblok. Dvs i stedet for <?= bruges <?php echo

PHP's recomended php.ini deaktiverer som default short tags i nyere versioner. Og de vil uden tvivl blive fjernet i fremtidige versioner.

<?ph(ili)p echo 'Just my 2 cents'; ?>
Avatar billede h_thunbo Nybegynder
11. januar 2007 - 18:26 #15
Det var vist en kommentar til zynzz og netmania.
Avatar billede h_thunbo Nybegynder
17. juni 2007 - 10:11 #16
Lukker den bare...
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