Javascript og php

Tags:    javascript auto-load

Hey alle sammen, jeg er igang med at lave en side, hvor jeg er stødt på lidt problemer med javascripten som desværre er nødvendig..., og da jeg samtidig er bedst i php og backend kodning er det lidt et problem for mig.

Fold kodeboks ind/udJScript kode 

Fold kodeboks ind/udHTML kode 


Selve koden udskriver så, nogle udtag fra mysql, når man vælger den i listen.
problemet er at hvis jeg vil have flere lister skal jeg kopiere javascript'en og lave selvet navnet på elementet om.

samtidig kan jeg ikke rigtig få de forrige, selections til at blive der hvis jeg vælger en ny i en nedenstående liste.

Jeg håber der nogle som kan nogle enkle tricks, til at løse dette.

mvh. Kristian





9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
kan du ikke lave en ekstra parameter til showUser(str) ??
function showUser(str, output_id), og sende parameteren vidre til
function stateChanged(output_id), der anvender den i
document.getElementById(output_id).innerHTML=xmlHttp.responseText; istedet for txtHint
hvor i din html code har du txtHint ??

du skal dog tage højde for at url=url+"?q="+str; bliver modtaget korrekt serverside, så her skal måske også en ekstra parameter på
der er vel forskæl på hvilke tabel der skal lavet et opslag i afh af hvilke element der afsender str'en


kan se på dine functions navne, og id du har hentet inspiration her
http://www.w3schools.com/php/php_ajax_database.asp
http://www.w3schools.com/ajax/ajax_php.asp

nb:
du kan godt undvære functionen GetXmlHttpObject()
og lave
xmlHttp=GetXmlHttpObject();
om til
xmlHttp=new XMLHttpRequest();
XMLHttpRequest() er understøttet af morderne browsere ref http://www.w3schools.com/ajax/ajax_xmlhttprequest_create.asp
MS begyndte at understøtte XMLHttpRequest(); fra IE ver 7

læs i øvrigt Simon Smith guide bare lavet med jquery
http://www.udvikleren.dk/artikler/374/dynamisk-indhold-med-ajax-og-php/

lav et komplet eks, vi kan teste, så skal vi prøve at optimere det





din code kan forkortes ved at overføre de to variabler som parameter, da det er sammen php fil der behandler data, se functionen hent_data
og så bør du måske overveje at bruge html5 header istedet for "<!DOCTYPE html PUBLIC......"

hurtig omskrivning af din code

html
Fold kodeboks ind/udKode 


hurtig test php, jeg gider ikke lave forskællige tekster
content.php
Fold kodeboks ind/udKode 



(SÅ må vi håber det løser sig og jeg ikke kommer igen ;))

det er du altid velkomen til :)




Indlæg senest redigeret d. 09.12.2014 18:28 af Bruger #16075
Sådan som du gør det burde siden ikke genindlæse. Har du overvejet at lave det hele som PHP i stedet for at skulle igang med Javascript også, nu hvor du er så ny ?



@ronny
Mange tak for svaret!

Må lige prøve mig lidt frem med det du siger, vil lige læse den artikel der igennem, jeg skal lige se om jeg kan få smidt et komplet eksempel op, så bliver det nok også lidt lettere at, hvad jeg mener, jeg får det lige gjort i aften.

@dan
Jeg har faktisk lavet det i php, jeg synes bare at det blev alt for indviklet med med xx antal get og sessions, det kunne sikkert gøres smartere, men det var lige sådan jeg fik det til at virke.


Jeg tror jeg har fundet en løsning, ved hjælp fra dit jquery eksempel, i kan se det her: http://a-athletics.dk/ST/jqu.html

Nu vil jeg så se om jeg kan få smidt min oprindelige php kode ind i det. Mange tak for hjælpen! (SÅ må vi håber det løser sig og jeg ikke kommer igen ;))

Kristian



Indlæg senest redigeret d. 09.12.2014 16:54 af Bruger #20946
Lækkert eksempel du kom med der, det vil jeg lige gemme til en anden god gang, egentlig skal jeg slet ikke bruge 2, det var bare for at se hvordan det virkede med 2.

Yes, men jeg har tilgengæld et andet problem i samme kategori, og i stedet for at lave en ny tråd tænkte jeg, at jeg kunne fortsætte den her.

Jeg har siddet og lejet lidt med nogen onblur calculation i jquery, som egentlig er blevet rigtig fint, her: http://a-athletics.dk/ST/diet_planner.php

dog, er der et væsentligt problem, den kan ikke finde ud af det med 0, et aller andet, selv hvis jeg har ændret i databasen til . som på engelsk. Samtidig fjerner den ,(et eller andet) hvis man trykker uden for enheds inputten. nogen ideer til hvordan jeg ordner det?

Og så har jeg også et problem med enhed, hvis det er pr. stk. jeg tænker lidt om jeg bare kan lave et hidden felt mere, også bestemme der om det er g - pr. stk også lave en if sætning i jquery?

På forhånd tak for hjælpen og god weekend!

Hilsen Kristian




dog, er der et væsentligt problem, den kan ikke finde ud af det med 0, et aller andet, selv hvis jeg har ændret i databasen til


du skal ikke parseInt, men anvende parseFloat til kommatal, så virker det også med 0 foran.

Fold kodeboks ind/udKode 


hvorfor har du 2 input felter til det sammen ??
<input type="text" border="0" readonly="true" id="fat_input" value="0.5">
<input type="hidden" id="fat_start" value="0.5">
brugeren kan jo ikke indtaste i felterne


er det ikke nemmerer at lave det med 1 input felt ??
Fold kodeboks ind/udKode 



NB: man er gået bort fra tabeller til design ved år 2000 skifted :), tabeller er til tabulære data ikke til design

NBB: det er iøvrigt ikke en særlig god ide at retunerer html fra ajax, og har heller ikke været meningen med ajax, det optimale er at retunerer xml eller json, dvs kun rå data.




Tjaaa, altså tabellerne er egentlig fordi, at jeg synes positionering i css er skabt af djævlen :)

Jeg kunne ikke rigtig få outputtet til at blive rigtigt hvis jeg ikke havde html i den retunerede data fil.

Jeg har i øvrigt lidt problemer med samme script på en anden side, at data'en der bliver hentet altid er oppe i toppen, og ikke det sted hvor jeg har min content div?

Men MANGE TAK for hjælpen parseFloat var lige det der skulle til! Grunden til hidden feltet er fordi jeg skal have en start værdi, som jeg ikke vil have ændret. og jeg tænkte at dette var den letteste måde at gøre dette på.

God aften!

Hilsen Kristian




Jeg kunne ikke rigtig få outputtet til at blive rigtigt hvis jeg ikke havde html i den retunerede data fil.



jeg har prøvet at lave den så den kun retunere de rå data, i json format

din vertion der retunere HTML retunere ca 1300 byte
din vertion kunne godt optimeres lidt så den ikke retunerede doMath() og derved spare ca 600 tegn

min vertion der retunere JSON retunere ca 50 byte
min vertion retunerer kun den row i databasen der passer med det id du har sendt over.

database
Fold kodeboks ind/udKode 


model.php
Fold kodeboks ind/udKode 



diet_content.php
Fold kodeboks ind/udKode 


diet_planner.php
Fold kodeboks ind/udKode 






Hej Ronny, mange tak for svaret!
Jeg må nok indrømme at mine skills til kodning ikke helt kan følge med på eksemplet du har lavet der, dog forstår jeg godt hvad du mener, min kodning er enormt tungt, og tager lang tid om at loade..., så jeg må igang med at lære. Først og fremmest vil jeg egentlig bare have det til at virke, også vil jeg forsøge at optimere så meget som muligt efter.

Nu er jeg så godt som færdig men den funktion/side jeg har lavet her, men er støt på et sidste problem, prikken over i'et.
jeg har været i gang med append funktionen, og den virker helt som jeg vil have det, dog er der et lille men, jeg har lavet en remove funktionen så man kan slette den append man har lavet. Dette er i kode nr 1, dog er der det problem at jeg også har lavet en funktion til automatisk at summere data'ene der kommer fra min append, men jeg kan simpelthen ikke lige se hvordan jeg skal kunne trække den enkelte tal, fra min summering, hvis man vælger at benytte sig af slette funktionen.
Kode nr: 1
Fold kodeboks ind/udJScript kode 


kode nr 2:

Fold kodeboks ind/udJScript kode 




t