Avatar billede mxs Nybegynder
12. oktober 2003 - 19:44 Der er 16 kommentarer og
1 løsning

Aktiverer en funktion skrevet i php, via onclick. Hvordan?

Hvis jeg har en funktion som hedder tjeck og som er skrevet i php, hvordan aktiverer jeg den så via en onclick som sidder i en a href?

På forhånd tak, MxS
Avatar billede fangel Nybegynder
12. oktober 2003 - 20:34 #1
det kan du IKKE... JS er client-side og afvikles INDE i browseren... PHP er server-side og afvikles på SERVEREN... dvs for at komme forbi PHP skal siden altså reloades (skal forbi serveren igen)

det er derfor 100% umuligt at få JS til at kalde en PHP funktion...

Morten
Avatar billede mxs Nybegynder
12. oktober 2003 - 20:48 #2
Okai okai så, men er der ikke en eller anden måde hvor på man via et link kan skifte variabel ud i php via JS?
Fx at man skifter strengen
$streng = aaben;
til strengen
$streng = luk;
? Fik bare at vide at det kunne man godt med onclick!
Avatar billede thesurfer Nybegynder
12. oktober 2003 - 20:51 #3
som dea_pg sagde:
når du arbejder med php (lige meget hvad) skal det ske lige FØR siden loades..
det kan ikke ske EFTER siden er loadet..
hvis du kan se links, billeder, textbox, tekst, osv, er du allerede på klientsiden..
så det kan du ikke.
Avatar billede fangel Nybegynder
12. oktober 2003 - 20:52 #4
skrev engang denne meget pædagoiske tale ang at overføre variabler fra JS til PHP (news flash - man kan ikke)

  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 webserveren "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 mxs Nybegynder
12. oktober 2003 - 21:46 #5
:O ah ok :)
Forstod det faktisk godt første gang. Kan godt se det forskellen på de to sprog. Så må jeg vel finde en anden måde for at overfører dataer til en php funktion via et onclick element. Har i nogen forslag?
Avatar billede mxs Nybegynder
12. oktober 2003 - 21:58 #6
Eller noget onclick lignende... ;o)
Avatar billede fangel Nybegynder
12. oktober 2003 - 22:00 #7
du skal reloade siden / gå til en anden side... du skal ind forbi serveren!

Morten
Avatar billede mxs Nybegynder
12. oktober 2003 - 22:38 #8
Hmmm forstår jeg godt det der, men jeg har i tanken om at lave sådan menu som viser uden menuer ligesom her til venstre på eksperten.dk.
Avatar billede grunken Nybegynder
12. oktober 2003 - 23:12 #9
du kan vel bare udføre din php i en skjult frame ved onclick på et evt. link,
eks : onclick="top.frames['skjultframenavn'].location.href = 'filnavn.php?var1=noget&var2=nogetandet';"

og dette phpscript kan jo bare ganske simpelt returnere javascript variabler!
Avatar billede olebole Juniormester
13. oktober 2003 - 00:30 #10
<ole>

<script type="text/JavaScript">
function tellMyServer(a) {
  var im = new Image();
  im.src = "http://www.domain.dk/pic.php?a=" + a;
}
</script>
  <a href="#" onclick="tellMyServer('noget');return false">TEST</a>

Så skal dit PHP-script blot behandle det medsendte GET-argument, læse en 1*1px gif (der ligger et sted på serveren) og og sende det tilbage til browseren. I sin simpleste form, noget à la:

<?

header("Content-type: image/gif");
if ( isset($_GET["a"]) && $_GET["a"]<>"" ) {
    // Gør noget med $_GET["a"] her
}
readfile("sti_til_lille_gif");

?>

/mvh
</bole>
Avatar billede olebole Juniormester
13. oktober 2003 - 00:35 #11
Her får du sendt din JS-variabel (og du kan selvfølgelig sagtens sende flere) til serveren ... du får ikke returneret noget, du kan bruge i dit JavaScript.

En anden mulighed (som er proprietær IE-kode):

<script type="text/JavaScript">
function tellMyServer(a) {
  document.all["buller"].src = "http://www.domain.dk/js_fil.php?a=" + a;
}
</script>
<script id="buller" type="text/JavaScript"></script>

<a href="#" onclick="tellMyServer('noget');return false">TEST</a>

Så kan du lade PHP skrive noget JavaScript ind i filen 'js_fil.php', der så returneres til browseren.
/mvh
Avatar billede thesurfer Nybegynder
18. december 2003 - 04:09 #12
Dette spørgsmål mangler input.
Det kan f.eks. være at spørgeren mangler at acceptere/afvise svar/komme med feedback, eller af en svarer mangler at lægge et svar/komme med feedback.
Avatar billede mxs Nybegynder
25. januar 2004 - 22:34 #13
Jeg lukker denne tråd
Avatar billede thesurfer Nybegynder
25. januar 2004 - 22:49 #14
hmm? Du var ved at få hjælpe, men svarer ikke.. og så lukker du bare?
Avatar billede mxs Nybegynder
25. januar 2004 - 22:53 #15
fandt en anden måde at gøre det på da jeg fandt min oprindelige måde med java script og php for bøvlet
Avatar billede thesurfer Nybegynder
25. januar 2004 - 22:54 #16
Så skal du ifølge Ekspertens regel §2.8, offentligøre løsningen.

Ekspertens regel §2.8:
"Hvis der udloddes andre præmier end point såsom penge, så skal spørgsmålet placeres i kategorierne Opgaver eller Job/opgaver. Svaret på - eller løsningen til - et sådant spørgsmål behøver ikke at blive offentliggjort på Eksperten - i modsætning til spørgsmål, der involverer point. De skal offentliggøres på sitet. Kategorierne Opgaver og Job/opgaver kan stadig indeholde spørgsmål med point som præmier. I så fald gælder de almindelige regler såsom offentliggørelse af svar."

Ekspertens regler: http://www.eksperten.dk/regler.phtml
Avatar billede mxs Nybegynder
25. januar 2004 - 23:03 #17
Jeg kan deværre ikke finde koden og som jeg husker så lavede jeg den, men jeg droppede den igen og gled hel væk fra det.

Det jeg ville lave var jeg ville have en boks til at hoppe op (åbne) Når man trykkede på et link og bagefter skulle man kunne lukke den igen på samme link. Jeg bruge sessions i php til at udføre jobbet, men som sagt droppede jeg og slettede koden da jeg fandt det overflødig på min hjemmeside.

Så jeg kan ikke på stående fod give koden da jeg ikke har den.
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