AJAX/PHP form der laver ged i den! ( undefined index i returneret select l...

Tags:    php ajax mysqli

Kære alle,

Jeg troede jeg sad og lavede noget jeg havde nogenlunde styr på, men åbenbart ikke.

Default form:

1) Man vælger en radio btn, og herefter kører en onchange function, der henter enten mulige hovedsider, eller mulige undersider ( afhængigt af valg..) -> FRA LINIE 38

FORMEN ER HER:
Fold kodeboks ind/udPHP kode 


Javascript funktion der bliver kaldt via radio btn's, til at hente enten undersider eller hovedsider:
Fold kodeboks ind/udJScript kode 



2) Når onchange funktionen er kørt fra en af radio btn's, så ser den php side der laver select listen med mulige sider således ud:
Fold kodeboks ind/udPHP kode 



3)I denne liste der udskrives ovenover er der så en anden onchange function (LINIE 18 OG 36, ca.), der alt efter side valg, henter endnu en select liste frem, der viser mulige positioner til det pdf dokument der skal uploades til siden. PHP scriptet der laver listen med positioner ser således ud:
Fold kodeboks ind/udPHP kode 


Javascript funktion der bliver kaldt her:
Fold kodeboks ind/udJScript kode 


Der sker det, at så snart jeg har vælgt en radio button, og subitter formen via php, så får jeg en undefined index i den $_POST værdi der skulle være sendt med den 1. select liste der indeholder enten hovedsider eller undersider.

Den samme undefined index fejl i $_POST, får jeg efter submit ved den sidste select liste der indeholder de mulige positioner for dokumentet.

Er der en der kan se, hvordan det kan være at der går ged i de select lister der bliver lavet og sendt tilbage til siden via AJAX.

PS: Den form der er der som default, virker fint nok: Der kan jeg godt tilgå $_POST værdierne uden at få fejl..

Jeg beklager den ringe formattering, men det var ikke nemt at indsætte alt det kode i editoren uden det kiksede lidt :-/

Spørg endelig hvis jeg kan gøre det mere tydeligt, eller jeg har udeladt nogen info!! :-)

/Klemme



Indlæg senest redigeret d. 30.10.2012 19:50 af Bruger #16555
5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hvad er den eksakte fejlmeddelse? :)



Notice: Undefined index: side_type in C:\wamp\www\elvir\backend\includes\pdf.php on line 12

og

Notice: Undefined index: placering in C:\wamp\www\elvir\backend\includes\pdf.php on line 13

Linie 12: $side_type = $_POST['side_type'];

Linie 13: $pos = $_POST['placering'];

Får disse fejl, hvis jeg har kaldt begge ajax funktionerne.

Hvis jeg f.ek.s alert(xmlHTTP.responsetext), så ser jeg faktisk koderne til select listerne, og de ser fine ud, med values osv.

Men jeg kan ikke rigtig få adgang til $_POST data til de select lister der hentes via ajax efter submit, nogen erfaringer/ideer til det?



Indlæg senest redigeret d. 30.10.2012 21:10 af Bruger #16555
Dine XHR kald er GET requests, derfor er dine værdier ikke til rådighed i $_POST. De vil formentlig være at finde i $_GET, hvis du sender dem som query parametre (det der står efter ?) i din URL.

Jeg vil anbefale at du bruger jQuery, og at du kigger på jQuery's Ajax metode http://api.jquery.com/jQuery.ajax/, der kan nemmere styre dine XHR kald, og hvilken request type de skal benytte.



"Undefined index" betyder at indexet ikke er sat... endnu.

Så før du bruger et index fra $_POST så test om det findes.

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 31.10.2012 00:22 af Bruger #13010
@Michael larsen:

Ja det er $_GET request når jeg sender info til php filen, der så tilbage sender en select liste.

Men jeg submitter jo ikke formen over AJAX, jeg indsætter blot en anden/ny select liste i formen, med den information der er relevant, og submitter så efterfølgende hele formen via $_POST.

Mit problem er jo så at jeg ikke kan få adgang til de ny-indsatte select listers $_POST værdi.

Igen, hele formen submittes via $_POST, og $_GET benytter jeg bare til at opdatere formens indhold med.

At jeg henter de nye select lister ind via $_GET og opdaterer formens indhold, har vel ikke indflydelse på hvorvidt jeg kan modtage disses $_POST værdier? Håber jeg giver mening!

@scootergrisen:

Det er ikke så meget det mit spørgsmål går ud på/handler om..Jeg tjekker om formen er submitted som det første, og så har jeg lavet en funktion der varetager validering og upload osv osv.

@Alle:

Jeg kan se at de nye select lister der indhentes via AJAX bliver en del af siden, men jeg kan bare ikke få adgang til deres $_POST værdier, når jeg submitter formen.

Nogen tanker er meget velkomne, da det er lige det sidste jeg mangler at lave til en opgave... :-)

***** UPDATE MED ET MERE SIMPELT EKSEMPEL: *****]

Jeg prøver lige igen, med et mindre eksempel..:

Jeg har en form, og efter der er klikket på en radio button, kører der et AJAX kald, som henter en select liste ind på et bestemt sted i formen.

Det virker helt fint, og den nye select liste der er hentet via AJAX vises fint, og er opdateret med de informationer som der skal være.

Når jeg så submitter formen, kan jeg ikke få adgang til $_POST værdien, i den select liste der er hentet ind i formen.

Her er mit PHP script, der kaldes via AJAX, og som udskriver den select liste jeg ikke kan få adgang til:
Fold kodeboks ind/udPHP kode 


Så afhængigt af hvilken radio button der er klikket på, så tjekker jeg i dette script om value var enten 'hovedsider' eller 'undersider', og udskriver en select liste, som indsættes i formen.

Jeg kan godt se select listen, men når jeg vil submitte formen med denne nye select liste, får jeg en undefined index 'side_type', fejl fra php.

Hvordan kan det være at jeg godt kan gennemføre AJAX kaldet, og hente en ny select liste til siden, som vises fint, men ikke få adgang til dennes value via $_POST efter formen er submitted?

Jeg håber det er mere overskueligt forklaret end før :-)

/Klemme



Indlæg senest redigeret d. 31.10.2012 18:27 af Bruger #16555
t