Avatar billede simplus Nybegynder
25. februar 2007 - 01:35 Der er 30 kommentarer og
1 løsning

udføre php kode i javascript funktion

Jeg skal simpelthen bare lave en javascript funktion som skal køre noget php kode når jeg kalder den. Vi taler om et php loop der udskriver noget fra en MySQL database. Grunden til at det skal ligge i en javascript funktion er at den skal kaldes ved onkeydown!
Avatar billede roenving Novice
25. februar 2007 - 01:45 #1
Så skal du over i ajax, prøv at søge på det i søgeboksen eller på google !-)
Avatar billede kalp Novice
25. februar 2007 - 01:47 #2
helt enig.. de har en okay tutorial på w3schools.
Avatar billede simplus Nybegynder
25. februar 2007 - 01:52 #3
hmm ok, men kan jeg ikke indsætte min php funktion i en fil for sig selv og derefter bruge javascripts fopen funktion til at åbne indholdet af min php fil?
Avatar billede simplus Nybegynder
25. februar 2007 - 01:55 #4
Nevermind, fandt ud af at fopen funktionen i javascript var en extension - er ikke inde i javascript nemlig!

Prøver jeres forslag...
Avatar billede kalp Novice
25. februar 2007 - 01:56 #5
Du kan lave et trick.. nu ved jeg ikke hvordan du vil kalde den kode, men hvis det er via. et link så lav et onclick.. f.eks

OnClick="parent.location='dinPhp.php"

parent.location skal selvfølgelig laves om til evt. en skjult iframe.
Avatar billede kalp Novice
25. februar 2007 - 01:57 #6
"parent.location skal selvfølgelig laves om til evt. en skjult iframe."

ja det var ikke særlig forståeligt:P
men man kan istedet for at skrive parent.location som nok er hovedsiden vælge en iframe den skal loade i.
Avatar billede simplus Nybegynder
25. februar 2007 - 02:09 #7
Ok, nu står det til sådan her: (jeg prøver det qawi skrev da en ajax søgning på google ikke giver særlig nyttigt info)

Jeg har to filer der hedder test.php og search.php

test.php indeholder en form der ser således ud:

<form action="" method="POST">
  Keyword: <input type="text" name="ord" onkeydown="parent.location='search.php'"> (Søger på overskrifter)
</form>

og search.php indeholder en sjat php som søger efter værdien fra $_POST['ord'] i databasen

det eneste problem er at POST værdien (selvfølgelig) ikke bliver overført til filen search.php

hvordan i hulen gør jeg det? :-)
Avatar billede simplus Nybegynder
25. februar 2007 - 02:25 #8
Med andre ord, hvordan er det nu lige man i javascript gemmer det brugeren skrev i et tekstfelt?

document.this.value

eller lign.
Avatar billede roenving Novice
25. februar 2007 - 02:34 #9
-- så bliver det:

<form action="" method="POST" target="_parent">
  Keyword: <input type="text" name="ord" onkeydown="this.form.submit()"> (Søger på overskrifter)
</form>
Avatar billede simplus Nybegynder
25. februar 2007 - 02:49 #10
Altså hvis jeg prøver:

<form action="" method="POST" target="_parent">
  Keyword: <input type="text" name="ord" onkeydown="parent.location='search.php?ord=this.form.submit()'"> (Søger på overskrifter)
</form>

så kommer min url på search.php når jeg bliver sendt derhen til at se således ud:

http://127.0.0.1/search.php?ord=this.form.submit()

dvs den ikke godtager det
Avatar billede roenving Novice
25. februar 2007 - 03:26 #11
-- næh, vi har nok snakket forbi hinanden ...

Hvis du skal udfylde nogle felter med data, som hentes fra din database med udgangspunkt i en indtastning, skal vi jo opnå, at database-opslaget laves hver gang, der tastes i feltet, men også at værdien i feltet bibeholdes, og så er det præcis ajax, du skal bruge ...

-- f.eks. kan du aktivere en funktion, der henter og skriver data hver gang onkeyup foregår:

<input type="text" onkeyup="getAjaxData(this);">

-- og så bliver funktionen ca.

<script type="text/javascript">
function getAjaxData(elm){
  var req = getXmlrequest(elm.value);/find denne et andet sted !-)
  elm.form.value = req.responseXml;
}
</script>
Avatar billede kalp Novice
25. februar 2007 - 08:55 #12
Det ligner du laver noget live search agtig noget?

så vil jeg hoppe tilbage til ajax igen:)

læs.
http://www.w3schools.com/ajax/ajax_intro.asp

og det er altså nærmest copy & paste.
Avatar billede simplus Nybegynder
25. februar 2007 - 13:54 #13
# roenving

Har prøvet at finde frem til hvad den kode præcis gør og jeg forstår den da nogenlunde efter lidt info search på google. Dog må jeg sige at jeg får en fejl når jeg kører den. Noget med at et objekt var ventet :-)

#qawi

Jep, live search er nøjagtigt det jeg er igang med :-)

Jeg vil straks gå igang med at læse den tutorial du linker til!

...

Til slut vil jeg bede jer begge om at lægge et svar. Jeres hjælp har været yderst brugbar!
Avatar billede kalp Novice
25. februar 2007 - 14:17 #14
Det er okay roenving får det hele:) hans første indlæg var korrekt nok:)
Avatar billede simplus Nybegynder
25. februar 2007 - 14:20 #15
Ok, er dog ingen gang sikker på at ajax kan gøre det (skal lige siges at jeg ikke har snuset til det endnu).

Grunden til at jeg ikke tror det kan lade sig gøre er jo at php er server side og javascript er client side.. Det ville give problemer.

Men som sagt ved jeg intet om ajax så det bør vel kunne lade sig gøre..
Avatar billede roenving Novice
25. februar 2007 - 14:22 #16
Se også dette link fra en anden tråd: http://www.xul.fr/en-xml-ajax.html !-)

Velbekomme '-)
Avatar billede simplus Nybegynder
25. februar 2007 - 14:31 #17
Tak til begge.
Avatar billede roenving Novice
25. februar 2007 - 14:33 #18
-- og jeg takker for point ;~}
Avatar billede kalp Novice
25. februar 2007 - 14:35 #19
ingen årsag:)
Avatar billede kalp Novice
25. februar 2007 - 15:04 #20
he he har først lige fået post om

Kommentar: simplus
25/02-2007 14:20:45

og har ellers overset det.

men simplus.. det kan godt lade sig gøre:) med Ajax leger du med et objekt som kommunikere direkte med serveren fra clienten af:)
Avatar billede simplus Nybegynder
25. februar 2007 - 15:41 #21
hmm, et objekt som kommunikere med serveren fra clienten af. Det lyder jo fremragene, men så vidt jeg kan læse mig frem til kan _jeg_ ikke komme uden om php+xml.

Jeg er igang med at lave min realtime search således:

man skriver noget i input feltet og værdien bliver sendt til en php fil som ligger i en skjult frame på samme side. Den tager værdien og søger efter matchene resultater i mysql databasen. De resultater den finder bliver skrevet ind i en xml fil som så bliver loadet via ajax og udskrevet lige ved siden af mit input felt som jeg startede med at skrive i.

Er der nogen bedre måde at gøre det på? Jeg mener du siger jo man kan kommunikere direkte med serveren fra clienten af ;-)
Avatar billede kalp Novice
25. februar 2007 - 15:49 #22
Nu har jeg desværre PHP skræk!
ved ikke om du kan bruge det til noget men kan evt. lave et live search i ASP.. (eller tror jeg kan:) )
Avatar billede simplus Nybegynder
25. februar 2007 - 15:58 #23
Hmm, det er ikke så meget PHP delen jeg har problemer med. Det er kun ajax delen. Det med at få overført det man skriver til PHP. Det er jo i bund og grund ikke en PHP funktion der skal til, men javascript. Det er dog meget generøst af dig, men for meget at forlange af mig. :-)

Hvis du dog er frisk på at hjælpe mig med ajax (mener at have læst i andre tråde at du interessere dig for det???) så ville et mini eksempel være helt i top. Jeg ved ikke om man kan kalde det et eksempel men mere et lille script. Jeg har jo som sagt kun problemer med at få overført det man skriver i input feltet til php. Resten kan jeg snildt selv lave.
Avatar billede kalp Novice
25. februar 2007 - 16:05 #24
Nu giver det ikke mening at du ser dette script:)
http://www.kalp.dk/fodbold/opretBruger.asp

men hvis du opretter noget i denne asp side så læg mærke til at den poster til databasen, men uden reload af siden.
Jeg overfører altså værdien fra mit tekstfelt til min ASP (som kunne være din PHP side)

kan du bruge det? så kan du få et link til at hente scriptet og pille det ud af det du kan bruge:)
Avatar billede simplus Nybegynder
25. februar 2007 - 16:13 #25
Det kan jeg da helt og aldeles bruge til noget!

Det er jo bare rette ASP koden til PHP. Eller bare og bare :-)

Vil du ikke gøre mig en lille bitte tjeneste inden du lægger det til download?

Bare at lave en kommentar ved den asp koden som modtager inputet fra feltet og gemmer den i en eventuel asp variabel. Så ved jeg hvor det hele sker.. Hvis ikke du bruger den metode så er det lige meget :-) Ville bare være fedt at se hvor det hele sker.

Tusinde tak!
Avatar billede kalp Novice
25. februar 2007 - 16:29 #26
hej igen simplus >>

Jeg fandt faktisk noget som er pænere skrevet end mit og så er det PHP!

http://w3schools.com/ajax/ajax_example_suggest.asp

afprøv suggest.. det er jo det samme som din søgefunktion.
når man indtaster noget finder den resultater live.


og her er hele kildekoden.
http://w3schools.com/ajax/ajax_source.asp

og i PHP nederst:)


Det er tusind gange nemmere for dig
Avatar billede roenving Novice
25. februar 2007 - 16:41 #27
-- tjah, hvad kan man sige ...

-- jeg har ikke gidet at gennemgå w3schools ajax-tutorial, fordi olebole adskillige gange har nævnt, at den bestemt ikke var god at lære noget af, men jeg blev da alligevel overrasket ...

-- at den var skrevet af en javascript-ukyndig er stærkt uhensigtsmæssigt, og brug af innerHTML er direkte kritisabelt !-)
Avatar billede simplus Nybegynder
25. februar 2007 - 16:47 #28
#qawi

Det er simpelthen så godt som det overhovedet kunne blive. Det er simpelt, det er php, det virker! :-)

jeg opretter et spørgsmål med point til dig om 2 min

#roenving

hvis ikke koden er god, hvad kan man så gøre for at gøre den bedre? :-)

ps. hvad er det som gør innerHTML så dårligt?
Avatar billede kalp Novice
25. februar 2007 - 17:01 #29
jeg behøver ikke point:)
Avatar billede roenving Novice
25. februar 2007 - 17:01 #30
F.eks.

var url="gethint.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();

-- som klart er skrevet af en, der ikke kender noget rigtigt til javascript, for det ville en øvet skrive:

var url = "gethint.asp?q";
url += str;
url  = "&sid=" + new Date().getTime();

-- og innerHTML har aldrig haft plads i nogensomhelst standard, men virker dog for nærværende i alle de almindelige browsere, jeg kender, men det holder op, når man for alvor begynder at skrive xhtml og det virker !-)

-- og måden at gøre det på er:

  document.getElementById("txtHint").firstChild.nodeValue = "&nbsp;";

document.getElementById("txtHint").firstChild.nodeValue = xmlHttp.responseText;

-- og:

<p>Suggestions: <span id="txtHint">&nbsp;</span></p>
Avatar billede simplus Nybegynder
25. februar 2007 - 17:11 #31
# qawi

jo come on :-) - http://www.eksperten.dk/spm/764688

# roenving

har prøvet at rette de to ting, men begge giver fejl hvis jeg bruger dem. Jeg tvivler dog ikke på at dine metoder er bedre. Det gør heller ikke så meget lige nu. Jeg skal først have alt til at virke også skal jeg for alvor tænke på kode optimering! Heldigvis er javascript koden ikke særlig lang, så det kan en nybegynder som mig lige håndtere. Der skal terpes javascript! :-)

Endnu engang tak for jeres oplysninger.
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