Avatar billede Slettet bruger
08. februar 2003 - 21:23 Der er 32 kommentarer og
2 løsninger

javascript -> php

hejsa
jeg vil høre hvordan jeg kan hente en javascript variabel ind i php, dvs
javascript variabel -> php variabel
Avatar billede gladmhensk Nybegynder
08. februar 2003 - 21:33 #1
Du kan jo afslutte dine php kommandoer ved bare at lukke det, men du kan vel godt sætte et javascript ind i noget php, men husk bare at oplyse browseren/serveren med <java-script eller hvad man nu skriver...
Avatar billede Slettet bruger
08. februar 2003 - 21:34 #2
har sku prøvet alt nu syntes jeg så et eksempel ville være dejligt
Avatar billede gladmhensk Nybegynder
08. februar 2003 - 21:35 #3
hmm har ikke forstand på java-script, men kan hurtigt finde ud af hvoen...er tilabge med et svar om 5 min
Avatar billede gladmhensk Nybegynder
08. februar 2003 - 21:36 #4
<script language="Javascript">
<!--
  burde det være hvor efter info er her hvor jeg skriver, og sluttes med

//-->
</script>
Avatar billede Slettet bruger
08. februar 2003 - 21:38 #5
det kan jeg jo ik bruge? det er jo ikke et eksempel på hvor du henter en java var ind som en php var?
Avatar billede fangel Nybegynder
08. februar 2003 - 21:39 #6
hvis du har en variabel i JS og skal til PHP kan du overføre den via _GET, men dette kræver at siden reloades... det vil alt forresten kræve... men du laver det sådan her

lad os sige din side hedder til_php.php

så skal du skrive

<script language="JavaScript1.2" type="text/javascript">
  int var = "test";
  window.location = "til_php?var=" + escape(var);
</script>

og for at modtage variablen i PHP skriver du

<?php
if(isset($_GET['var'])){
  echo "JavaScrip variablen "var" havde værdien: " . $_GET ['var'];
}
?>

Morten
Avatar billede gladmhensk Nybegynder
08. februar 2003 - 21:39 #7
hmm....vil jeg umiddelbart ikke tro, og det lyder ulogisk ;)

Men ellers kan jeg lige kigge i min php bog...
Avatar billede Slettet bruger
08. februar 2003 - 21:42 #8
dea_pg > problemet er bare at siden IKKE må reloades
Avatar billede fangel Nybegynder
08. februar 2003 - 21:43 #9
gladmhensk => sagde du til at mig, at du ikke tror man kan lave det sådan? for det kan man... dette er absolut eneste måde hvis du skal direkte...

si' bare til hvis du er uening, skal gerne oplyse dig om hvorfor...

Morten
Avatar billede fangel Nybegynder
08. februar 2003 - 21:44 #10
martin => så kan du ikke, vil du have en forklaring eller vil du gå med til at man bare ikke kan?
Avatar billede Slettet bruger
08. februar 2003 - 21:45 #11
vil gerne have en forklaring, for kan sku ik forstå jeg ikke kan printe en js variabel ud i php, når js variablen er defineret når siden åbner
Avatar billede fangel Nybegynder
08. februar 2003 - 21:48 #12
OK... har du en HTML fil hvor der står en FAST variabel? så kan man måske, men hvis det er en variabel der først bliver sat når siden loades, så kan man ikke
Avatar billede dmcn Praktikant
08. februar 2003 - 21:49 #13
PHP = serverside = genereres på serveren = aner intet om hvad der sker på klientsiden med mindre den fortælles om det, hvilket den kun kan når siden loades (genereres af serveren).
Avatar billede Slettet bruger
08. februar 2003 - 21:50 #14
det fungere således
jeg har 1 form input felt og når jeg trykker submit så udfører den en javscript funktion hvori der også er et php-sql kald, dette virker helt fint og den sender javavariabel altså den der form input til den funktion hvilket også virker ok, men inde i det php script jeg har i js funktionen der vil jeg gerne have printet den js variabel ud?
er det til at forstå? HEHE syntes elv det lyder underligt
Avatar billede fangel Nybegynder
08. februar 2003 - 21:50 #15
hvis du har en HTML fil der ser sådan her ud

--- test.htm ---
<html>
<en masse tags>

<script language="JavaScript1.2">
int var = "en variabel med indhold";
</script>

<en masse tags>
</html>
---

kan du godt, men har du derimod

<script lang="JS">
int var = promt("hvad skal var indholde?");
</script>

(eller på anden måde ændres) kan du ikke

Morten
Avatar billede fangel Nybegynder
08. februar 2003 - 21:51 #16
hvis du har et PHP sql kald så reloades siden også... ;) du skal bare søre for at JS variablen kommer med på det tidspunkt...
Avatar billede fangel Nybegynder
08. februar 2003 - 21:53 #17
n0rmality => argg, det ville jeg sige... elsker at komme med den tale... ;)
Avatar billede Slettet bruger
08. februar 2003 - 21:53 #18
tror lige jegs mider koden det er vist nemmere :D
Avatar billede Slettet bruger
08. februar 2003 - 21:53 #19
<script language='JScript'>
    function CheckForm(myForm) {
        <?
        $tjek = mysql_query("SELECT * FROM users WHERE nick='marshall'") or die ("Kunne ikke vælge felter i database-tabellen");
        if(mysql_num_rows($tjek) == 1)
        {
        $nick_opret = "1";
        }
        else
        {
        $nick_opret ="0";
        }
        ?>
        var myMsg = 'Der opstod følgende fejl:\n\n';
        var myErrors = 0;

        if(myForm.nick.value.length < 1) {
            var myMsg = myMsg + 'Brugernavn - skal udfyldes.\n';
            myErrors = myErrors + 1;
        }
       
        if(<? echo"$nick_opret"; ?> == 1) {
            var myMsg = myMsg + 'Brugernavnet er optaget.\n';
            myErrors = myErrors + 1;
        }

        if(myForm.navn.value.length < 1) {
            var myMsg = myMsg + 'Navn - skal udfyldes.\n';
            myErrors = myErrors + 1;
        }

        if(myForm.city.value.length < 1) {
            var myMsg = myMsg + 'By - skal udfyldes.\n';
            myErrors = myErrors + 1;
        }
       
        if(myForm.alder.value.length < 1) {
            var myMsg = myMsg + 'Alder - skal udfyldes.\n';
            myErrors = myErrors + 1;
        }
       
        if(myForm.nyt_pass.value != myForm.nyt_pass2.value) {
            var myMsg = myMsg + 'De nye passwords er ikke ens.\n';
            myErrors = myErrors + 1;
        }

        if ((myForm.mail.value.indexOf("@") == -1) || (myForm.mail.value.charAt(0) == ".") || (myForm.mail.value.charAt(0) == "@") || (myForm.mail.value.length < 6) || (myForm.mail.value.indexOf(".") == -1) || (myForm.mail.value.charAt(myForm.mail.value.indexOf("@")+1) == ".") || (myForm.mail.value.charAt(myForm.mail.value.indexOf("@")-1) == ".")) {
            var myMsg = myMsg + 'E-mail - skal indeholde en gyldig e-mail adresse.\n';
            myErrors = myErrors + 1;
        }

        if(myErrors > 0) {
            alert(myMsg);
            return false;
        }
    }
    </script>
        <?
        echo"
        <Form action='my_profile.php?mode=opdater' method='post' name=form onSubmit='return CheckForm(this)'>
        <table align=center width=100%  cellspacing=2 cellpadding=0 border=0>
        <tr>
        <td align=left width=150>
        <font color=#1C2A45 size=2>";
        //opdater her
        if($mode=="opdater")
        {
       
        }
        //
       
        echo"
        <table>
        <tr><td><font color=1C2A45 size=1 face=verdana>Brugernavn: </td><td><input type='text' name='nick' size='40' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /></td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Nyt password: </td><td><input type='password' size='40' name='nyt_pass' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /></td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Nyt password igen: </td><td><input type='password' size='20' name='nyt_pass2' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /></td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Navn: </td><td><input type='text' size='20' name='navn' value='$data[navn]' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /><font color=1C2A45 size=1 face=verdana>*</td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Adresse: </td><td><input type='text' size='20' name='adresse' value='$data[adresse]' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /></td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>By: </td><td><input type='text' size='20' name='city' value='$data[city]' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /><font color=1C2A45 size=1 face=verdana>*</td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Alder: </td><td><input type='text' size='2' maxlength='2' name='alder' value='$data[alder]' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /><font color=1C2A45 size=1 face=verdana>*</td></tr>
        <tr><td><font color=1C2A45 size=1 face=verdana>Mail: </td><td><input type='text' size='20' name='mail' value='$data[mail]' style='font-size: 7pt; font-family: Verdana; font-color: #C1C2C5; background-color: #ffffff;  border-color: #000000; border-width: 1' /><font color=1C2A45 size=1 face=verdana>*</td></tr>
        </table>
        <center>
        <font color=1C2A45 size=1 face=verdana>Felter med * skal udfyldes<br>
        <input type=submit value='Opdater profil' name='submit'></center></form>
        ";
       
        ?>
        </td>
        </tr>
        </table>
Avatar billede Slettet bruger
08. februar 2003 - 21:54 #20
if(<? echo"$nick_opret"; ?> == 1) {
            var myMsg = myMsg + 'Brugernavnet er optaget.\n';
            myErrors = myErrors + 1;
        }

er den der skal sendes hvis $nick_opret=1
Avatar billede dmcn Praktikant
08. februar 2003 - 21:56 #21
martin_dk : Du kan ikke køre dit optaget-nick-check uden at reloade siden.

dea_pg : Talen er så hyggelig. ;)
Avatar billede Slettet bruger
08. februar 2003 - 21:57 #22
jamen hvis jeg i sql kaldet skriver en php variabel eller bare et navn som er oprettet så virker det?
Avatar billede dmcn Praktikant
08. februar 2003 - 21:59 #23
Ja, men PHP'en udføres først når siden loader.
Du må forstå det grundlæggende princip om PHP:
PHP udføres før noget andet på siden. PHP er, som sagt, serverside, hvilket betyder at det køres på serveren og genererer HTML som sendes til browseren. Tegnet ser det således ud:
Bruger sender request til webserveren > Webserveren sender filen til PHP der udfører de nødvendige funktioner > PHP sender filen til brugerens browser > Brugerens browser læser HTML'en og præsenterer den for brugeren.
Du kan altså ikke køre PHP-funktioner når først siden er vist til brugeren som du kan med JavaScript. Deri ligger forskellen på client side og server side (der er mange flere, men denne er ret vital ;) ).
Avatar billede fangel Nybegynder
08. februar 2003 - 22:03 #24
n0rmality => argg, du siger altid det sjove... jeg vil også en gang i mellem... ;)

vi prøv igen og så ser vi om martin kan forstå

PHP er et server-side programmerings sprog (det er derfor at du skal have en server for at kunne teste det)... når en browser spørger efter en side, tænker browseren "ohhh, den fil hedder .php, så jeg må hellere få PHP til at kigge på den", der efter kigger PHP i filen efter <?php og ?> tegn, hvis den møder sådanne tegn fortolker den det er står imellem.
når dette er sket siger PHP "så, nu må du godt sende siden til browseren" til webserveren. så sender webserveren siden til browseren.
Når (og ikke før) siden så kommer frem til browseren tænker den "det kan være der står noget JavaScript i filen, jeg må hellere tjekke", så leder den efter <script> tegn, og hvis de finder sådan nogle, så fortolker browseren det der står imellem som JavaScript. derefter vises siden for brugeren.

DERFOR, kan du ikke få JavaScript til at udskrive en JavaScript variabel, da PHP er færdig med at kigge på siden, længe før JavaScript overhovedet ved om der er noget JavaScript på siden...

SÅ, det du vil lave er altså umulig med mindre du reloader din side... du kan altså KUN overføre fra PHP til JavaScript, men IKKE omvendt..

Morten
Avatar billede fangel Nybegynder
08. februar 2003 - 22:04 #25
n0rmality => NU stopper du altså, jeg vil også have lov til at sige noget f det sjove...
Avatar billede Slettet bruger
08. februar 2003 - 22:07 #26
okay nu er jeg med, men hvordan gør jeg det så omvendt? php -> java
Avatar billede fangel Nybegynder
08. februar 2003 - 22:08 #27
normality => jeg har taget mig den frihed at tilføje dig til min MSN liste, så når du bliver spurgt om brugeren "MFA || ..." kan se dig, så bare si' ja... det er altdi rart at snakke med en med PHP nørd...

Morten
Avatar billede fangel Nybegynder
08. februar 2003 - 22:10 #28
PHP => JavaScript...

<script language="JavaScript">
<?php
$var = "hej, jeg vil ind i javascript";
echo "int var = \"" . $var . "\";";
?>
</script>

Morten
Avatar billede Slettet bruger
08. februar 2003 - 22:11 #29
og så lige et tilægs spm igen :D
kan man få en variabel i js til at være ens med et form felt? altså som altid er ens uanset hvad
Avatar billede dmcn Praktikant
08. februar 2003 - 22:11 #30
dea_pg : Kan godt være jeg siger alt det sjove, men du siger det nu på en noget mere pædagogisk måde. Dog er der en mindre rettelse:
når en browser spørger efter en side, tænker browseren "ohhh, den fil hedder .php
skal nok være:
når en browser spørger efter en side, tænker webserveren "ohhh, den fil hedder .php
Avatar billede Slettet bruger
08. februar 2003 - 22:14 #31
jeg lukker nu da jeg lige fik en anden ide ;D
men i får 15 point hver fordi i gad bruge tid ;D
Avatar billede Slettet bruger
08. februar 2003 - 22:15 #32
normality lægger du et svar?
Avatar billede fangel Nybegynder
08. februar 2003 - 22:15 #33
arhh... krimi... det sker hver gang... ;)

hmm... jeg er ikke SÅ sej til JS, men det er noget med

int var = "test";
document.form.felt.value = var;
Avatar billede dmcn Praktikant
08. februar 2003 - 22:17 #34
Så skidt. ;)
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