form confirmeren (javascript?? - php)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pieter

Pieter

17/03/2008 16:14:00
Quote Anchor link
Hallo, ik heb momenteel 2 forms.
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.
 
PHP hulp

PHP hulp

27/12/2024 10:52:39
 
Jesper Diovo

Jesper Diovo

17/03/2008 16:20:00
Quote Anchor link
Als ik je goed begrijp -wat op zich niet al te makkelijk is- bedoel je dat er nieuwe inputs worden toegevoegd aan een formulier d.m.v. javascript? Jouw vraag is nu hoe je op deze velden moet checken?

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!empty($_POST['woord'.$i.''])) {
?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
foreach($_POST as $key => $value) {
 if(!empty($value)) {
?>
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Pieter

Pieter

17/03/2008 16:29:00
Quote Anchor link
Hmmm ik ben niet duidelijk?
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
 
Jesper Diovo

Jesper Diovo

17/03/2008 16:35:00
Quote Anchor link
Een rij? Wat voor een rij? Een rij mensen? Een rij gegevens? Een rijstkorrel?
"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.
 
Pieter

Pieter

17/03/2008 16:44:00
Quote Anchor link
Euh neen, sry, ik heb dus een table row. in die table row steekt: een input veld, 2 selectboxen, 3 input velden. En die selectboxen (moest het belangrijk zijn om te weten) worden gevuld met een while lus vanuit db.

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.
 
Jesper Diovo

Jesper Diovo

17/03/2008 16:53:00
Quote Anchor link
Een tabelrij. Oké, da's duidelijk. In die tabelrij zit in totaal drie input velden en 2 select boxen. Nu wil je nieuwe velden toevoegen in deze tabelrij? Dat gaat inderdaad via JavaScript. Een aantal kernwoorden zijn: createElement, setAttribute en appendChild. Daarop googlen i.c.m. het woordje 'javascript' zal vast geen nutteloze hits opleveren.

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'.
 
Pieter

Pieter

17/03/2008 17:01:00
Quote Anchor link
Ik wil de tabelrij kopieren.
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.
 
Jesper Diovo

Jesper Diovo

17/03/2008 17:13:00
Quote Anchor link
Aah, nou is het helemaal duidelijk! Ik denk dat ik ook wel zie wat je probleem is: als je alles kopieert, blijven de 'names' van de velden natuurlijk altijd hetzelfde, en zal alleen de waardes van de laatste velden verzonden worden (omdat ze elkaar iedere keer overwriten).

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.
 
Pieter

Pieter

17/03/2008 17:24:00
Quote Anchor link
Dus niet duplicate meer recreate..?
 
Jesper Diovo

Jesper Diovo

17/03/2008 17:48:00
Quote Anchor link
Jep... daar ziet het wel naar uit.
 
Pieter

Pieter

19/03/2008 11:09:00
Quote Anchor link
Mja, zoals verwacht lukt javascript niet echt...
Ben ik juist met dit scriptje...?

var cell5 = row.insertCell(5);
var selBox1 = document.createElement('select');
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
                while(!$RsStageTypeSel->EOF){
            ?>

var option = document.createElement('option');

option.appendChild(document.createTextNode('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeName');?>
'));

option.setAttribute('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeID');?>
', '
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeName');?>
' + x);
select.appendChild(option);
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
                $RsStageTypeSel
->MoveNext();
                }

                $RsStageTypeSel->MoveFirst();
            ?>

 
Crispijn -

Crispijn -

19/03/2008 15:43:00
Quote Anchor link
je moet een javascript functie aanmaken waarbij je elke keer de key van je velden verhoogt. Jan Koehoorn heeft ooit zoiets gemaakt voor het upoaden van meerdere bestanden
 
Pieter

Pieter

21/03/2008 11:35:00
Quote Anchor link
Nja sry daar versta ik dus niks van :/
 
Crispijn -

Crispijn -

21/03/2008 11:54:00
Quote Anchor link
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 ;)
 
Pieter

Pieter

21/03/2008 12:36:00
Quote Anchor link
wel, ik heb nu al TE LANG geprobeerd om die rij zelf aan te maken
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');
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
                while(!$RsStageTypeSel->EOF){
            ?>

var option = document.createElement('option');

option.appendChild(document.createTextNode('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeName');?>
'));

option.setAttribute('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeID');?>
', '
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $RsStageTypeSel->Fields('StageTypeName');?>
' + x);
select.appendChild(option);
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
                $RsStageTypeSel
->MoveNext();
                }

                $RsStageTypeSel->MoveFirst();
                ?>

 
Pieter

Pieter

25/03/2008 10:32:00
Quote Anchor link
Boemp?
 
Crispijn -

Crispijn -

25/03/2008 11:24:00
Quote Anchor link
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....
 
Pieter

Pieter

25/03/2008 11:33:00
Quote Anchor link
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?
 
Pieter

Pieter

26/03/2008 17:56:00
Quote Anchor link
EN wat als ik nu gewoon deze code wil aanpassen

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...??
 
Gunther

Gunther

21/04/2008 14:58:00
Quote Anchor link
Ik werk met spry hiervoor... , maar dan zit ik met een ander probleem.
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.