form confirmeren (javascript?? - php)
De ene in php de andere ook in php maar heeft 2 images.
De een voor add, de andere voor delete.
In javascript heb ik nu functies die de 1ste rij die er al staat in php, kopieert en toevoegt met addchild
function addRowToTable()
{
var root = document.getElementById('myTable').getElementsByTagName('tr')[1].parentNode;
var obj = root.getElementsByTagName('tr')[0].cloneNode(true);
root.appendChild(obj);
}
Nu ik zit met een vraag hoe ik deze rijen (die toegevoegd zijn alsook die ene die er staat) moet doorsturen om te worden gevalideerd en dus om te confirmeren. Maar dit samen met de andere form.
Hoe kan ik dus best die beide forms (1 javascript zo goed als) de andere php samen in 1x gaan valideren op input en dan alles netjes terug wegschrijven in een nieuw venster zodat de gebruiker kan checken.. klopt het.
Indien wel stuur alles door.
Ik zou geen ajax willen gebruiken maar gewoon php en/of javascript.
Ik zelf heb -toen ik zo'n script schreef- voor een maximum aantal velden gekozen. Ieder veld heeft een vaststaand woord + een getal (welke bij ieder nieuw veld +1 wordt). Daarna, bij het controleren van het formulier, een for()-loop laten wandelen. Deze laten checken op:
En zo bekijken welke wel zijn geset, en welke niet.
Edit: Je kunt i.p.v. dat maximum natuurlijk ook oneindig veel velden laten toevoegen. Dan controleer je d.m.v. een foreach() op de $_POST-array. Je kijkt of $value niet leeg is. Voorbeeldje:
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Wel ik heb een rij.. een input veld, 2 selectboxen, 3 input velden
die wordt dan telkens gekopieert in de tabel.
Dus van die tabel zou eigenlijk de cellen moeten worden gecontrolleerd worden ofdat ze zijn ingevuld. (Nadien checkt de gebruiker zelf maar of zijn input correct is)
wat ik al ergens las was door die input in een hidden field te steken en die variabele dan ophalen in php en zo die te checken... Maar ik weet niet of je volledige rijen zomaar kan steken in een hidden field variabele.
dus eigenlijk een beetje die gehele tabel van javascript naar php te zetten.. Omdat als ik de broncode bekijk dus die tabel niet getoond wordt (waarschijnlijk het verschil tussen server-sided en client-sided)
Dus als de "confirm" knop wordt ingedrukt => nieuw venster popup en de 2 forms daar in gezwiert.
Ben ik duidelijk?? :s
"3 input velden die wordt dan telkens gekopieert in de tabel" citeer ik even. Als ik hieruit goed mag begrijpen, worden er drie input velden (via javascript?) in een tabel gezet. Bestaat de tabel van te voren al? Of maak je die óók nog eens aan?
Bij het verzenden van het formulier moeten dus de door de bezoeker aangemaakte velden worden gecontroleerd? Lees dan even mijn tweede en derde alinea in mijn vorige reactie.
Een tabel omzetten van javascript naar PHP? Dat zal moeilijk gaan.. JavaScript is client-side en PHP server-side. Client-side wordt 'zichtbaar' uitgevoerd. Server-side kan niet worden gezien door een bezoeker. Dat gebeurt achter de schermen van de server.
En ja eigenlijk zoiets wel. zoals je code. Zal dan een foreach moeten zijn. Het is nooit op voorhand geweten hoeveel rijen die gaat toevoegen.
Dat is eigenlijk een beetje wat ik me afvraag of die tabel om te zetten valt van javascript naar php. Gaat het niet door de tabel gewoon te checken in javascript en die dan mee te geven naar een nieuwe pagina samen met de gegevens van die andere form, waar dan php variabelen instaan.
Ik heb al de code buiten dat ik nu even vast zit om alles op te halen , te checken en dan naar die nieuwe pagina te sturen. :/
Alvast bedankt voor de reacties.
Op een tabel valt niet te checken. Een tabel kun je niet versturen, en via een bepaalde interne functie waardes uit die request laten halen. Een formulier kun je echter wél versturen en weer 'uitkleden'.
Het is een rij waarbij men bepaalde gegevens invoert.
Dus eerste form is een formulier waarbij de gebruiker de klant ingeeft, waar het geshipt moet worden en nog gegevens.
Dan komt die 2de form.
Die heeft altijd 1 rij. (die staat er ook in php)
Dan met de code die ik in mijn eerste reactie zette kopieer ik die rij en voeg ze er aan toe elke keer ik op een plus sign klik (omgekeerd met de min-sign).
Dat zijn gegevens van de producten die ze meevoeren (uit welk land type, welke soort product, hoeveel ervan, de routerID, Plug, IDC, die zaken (dus met input veld)
En dan zou ik de tweede form. (Die met javascript werkt.) dus ergens moeten kunne checken op een manier maar ik ben niet bepaald een krak in javascript. (daarmee dat ik ook geen ajax wil gebruiken :))
't zou eigenlijk gewoon moeten zijn. Tabel in form checken op lege velden.. indien goed haal hem op. steek hem in nieuwe pagina.
Lastig probleem, inderdaad. De enige oplossing die ik nu zie is alles los kopiëren, en iedere keer de opties van de selectboxen via PHP appendChild'en. Dan zou ik de methode gebruiken met de name van de velden in de structuur: woordgetal (land01, bijv.). Bij dat getal telkens weer 1 optellen.
Over het controleren valt later nog te twisten, eerst dit even oplossen.
Dus niet duplicate meer recreate..?
Jep... daar ziet het wel naar uit.
Ben ik juist met dit scriptje...?
var cell5 = row.insertCell(5);
var selBox1 = document.createElement('select');
var option = document.createElement('option');
option.appendChild(document.createTextNode(''));
option.setAttribute('', '' + x);
select.appendChild(option);
Nja sry daar versta ik dus niks van :/
zo ingewikkeld is het toch niet? Copy paste het eest eens in een eigen pagina en ga hem daarna verbouwen. Het principe is echt doodelijk eenvoudig! Je moet er alleen even opkomen he Jan ;)
Ik zit vast met die select te maken... kan iemand me zeggen wat de fout is..
// cell 5 - Select checkbox
var cell5 = row.insertCell(5);
var selBox1 = document.createElement('select');
var option = document.createElement('option');
option.appendChild(document.createTextNode(''));
option.setAttribute('', '' + x);
select.appendChild(option);
Boemp?
Als ik je steeds goed heb begrepen wil je met javascript steeds rijen invoegen. Wat doet dan het php gedeelte in je javascript? Dit wordt alleen uitgevoerd wanneer de pagina geladen wordt. Niet wanneer jij de javascript functie aanroept. Dus het lijkt me dat hier iets mis gaat....
Moet ik dan eerst alles wat ik in die select zou stoppen eerst in een variabele steken met php (als de pagina laad) en dan met javascript die variabele ophalen.. in een array steken en daar dan mee werken?
function addRowToTable(myTable)
{
var tab = document.getElementById('myTable');
var root=tab.getElementsByTagName('tr')[0].parentNode;//the TBODY
var clone=tab.getElementsByTagName('tr')[1].cloneNode(true);//the clone of the first row
root.appendChild(clone);//appends the clone
}
En hier ergens een index ofzo insteek zodat elke rij uniek is en niet wordt overschreven als ik mijn post ophaal om te valideren...??
Ik heb een selectbox met verschillende waarden. Afhankelijk van die waarden worden enkele velden getoond, die verplicht moeten worden ingevuld. Het probleem is dat hij alle velden die voorkomen in alle verborgen velden gaat valideren, en niet enkel diegene die opgeroepen zijn.
Dit gebeurt allemaal in 1 venster met Javascript.
je kan alles eens bekijken op http://www.grproductions.be/test/testpagina.php