texfield naam variabel
Wie weet hoe dit op te lossen?
Ik heb een form met wat tekstvelden. Ik laat de waarden hiervan uitlezen uit mysql middels een for-lus, zodat deze waarden dus standaard in de velden komen te staan.
Eenmaal de pagina geladen, wil ik deze tekstvelden onafhankelijk van elkaar kunnen wijzigen.
Echter... zoals ik het nu heb gedaan is het nodig dat elke bundel tekstvelden z'n eigen unieke code heeft.
Ik zoek natuurlijk naar een oplossing waarbij ik dus zowel de waarden kan ophalen uit de db, als dat ik elk veldje kan wijzigen....
PS 'k heb geexperimenteerd met "thuis" en dat werkt dus niet;
Wat ik nu heb:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>WK2006</title>
</head>
<body>
<table width="801" border="0">
<tr>
<td width="59"><div align="center">Datum</div></td>
<td width="178"><div align="center">Thuis</div></td>
<td width="261"><div align="center">Uit</div></td>
<td width="88"><div align="center">Uitslag</div></td>
<td width="82"><div align="center">Toto</div></td>
<td width="67"><div align="center"></div></td>
<td width="36"><div align="center"></div></td>
</tr>
</table>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
for ($j = 1; $j <= 2;$j++ ) {
[code]<?php
#=================================== GET FORM FROM TABLE ==================================
$queryDatum = mysql_query("SELECT datum FROM wedstrijden WHERE nummer=$j ");$valueDatum=mysql_result($queryDatum,0);
$queryThuis = mysql_query("SELECT thuis FROM wedstrijden WHERE nummer=$j ");$valueThuis=mysql_result($queryThuis,0);
$queryUit = mysql_query("SELECT uit FROM wedstrijden WHERE nummer=$j ");$valueUit=mysql_result($queryUit,0);
$queryVoor = mysql_query("SELECT voor FROM wedstrijden WHERE nummer=$j ");$valueVoor=mysql_result($queryVoor,0);
$queryTegen = mysql_query("SELECT tegen FROM wedstrijden WHERE nummer=$j ");$valueTegen=mysql_result($queryTegen,0);
$queryToto = mysql_query("SELECT toto FROM wedstrijden WHERE nummer=$j ");$valueToto=mysql_result($queryToto,0);
$nthuis="thuis$j";
?>
<form name="putintable" method="POST" action="fills.php">
<table width="801" border="0">
<tr>
<td width="48"><input name="datum" type="text" size="8" maxlength="8" value="<?= $valueDatum ?>"></td>
<td width="180"><input name="<?= $nthuis ?>" type="text" size="30" maxlength="20" value="<?= $valueThuis ?>" ></td>
<td width="224"><input name="uit" type="text" size="30" maxlength="20" value="<?= $valueUit ?>"></td>
<td width="33"><input name="voor" type="text" size="2" maxlength="2" value="<?= $valueVoor ?>"></td>
<td width="64"><input name="tegen" type="text" size="2" maxlength="2" value="<?= $valueTegen ?>"></td>
<td width="132"><input name="toto" type="text" size="2" maxlength="1" value="<?= $valueToto ?>"></td>
<td width="90"> </td>
</tr>
</table>
<p> </p>
</form>
?>
for ($j = 1; $j <= 2;$j++ ) {
[code]<?php
#=================================== GET FORM FROM TABLE ==================================
$queryDatum = mysql_query("SELECT datum FROM wedstrijden WHERE nummer=$j ");$valueDatum=mysql_result($queryDatum,0);
$queryThuis = mysql_query("SELECT thuis FROM wedstrijden WHERE nummer=$j ");$valueThuis=mysql_result($queryThuis,0);
$queryUit = mysql_query("SELECT uit FROM wedstrijden WHERE nummer=$j ");$valueUit=mysql_result($queryUit,0);
$queryVoor = mysql_query("SELECT voor FROM wedstrijden WHERE nummer=$j ");$valueVoor=mysql_result($queryVoor,0);
$queryTegen = mysql_query("SELECT tegen FROM wedstrijden WHERE nummer=$j ");$valueTegen=mysql_result($queryTegen,0);
$queryToto = mysql_query("SELECT toto FROM wedstrijden WHERE nummer=$j ");$valueToto=mysql_result($queryToto,0);
$nthuis="thuis$j";
?>
<form name="putintable" method="POST" action="fills.php">
<table width="801" border="0">
<tr>
<td width="48"><input name="datum" type="text" size="8" maxlength="8" value="<?= $valueDatum ?>"></td>
<td width="180"><input name="<?= $nthuis ?>" type="text" size="30" maxlength="20" value="<?= $valueThuis ?>" ></td>
<td width="224"><input name="uit" type="text" size="30" maxlength="20" value="<?= $valueUit ?>"></td>
<td width="33"><input name="voor" type="text" size="2" maxlength="2" value="<?= $valueVoor ?>"></td>
<td width="64"><input name="tegen" type="text" size="2" maxlength="2" value="<?= $valueTegen ?>"></td>
<td width="132"><input name="toto" type="text" size="2" maxlength="1" value="<?= $valueToto ?>"></td>
<td width="90"> </td>
</tr>
</table>
<p> </p>
</form>
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo $nthuis;
#declare
$datum=$_POST['datum'];
$thuis=$_POST['$nthuis'];
$uit=$_POST['uit'];
$voor=$_POST['voor'];
$tegen=$_POST['tegen'];
$toto=$_POST['toto'];
echo $thuis;
$aktie=$_POST['aktie'];
if (isset($aktie)){
echo "Thanks for submitting!";
$query3 = "UPDATE wedstrijden SET datum='$datum',thuis='$thuis',uit='$uit',voor='$voor',tegen='$tegen',toto='$toto' WHERE nummer=$j ";
mysql_query($query3);
#header("Refresh: 0; URL=fills.php");
}
}
?>
echo $nthuis;
#declare
$datum=$_POST['datum'];
$thuis=$_POST['$nthuis'];
$uit=$_POST['uit'];
$voor=$_POST['voor'];
$tegen=$_POST['tegen'];
$toto=$_POST['toto'];
echo $thuis;
$aktie=$_POST['aktie'];
if (isset($aktie)){
echo "Thanks for submitting!";
$query3 = "UPDATE wedstrijden SET datum='$datum',thuis='$thuis',uit='$uit',voor='$voor',tegen='$tegen',toto='$toto' WHERE nummer=$j ";
mysql_query($query3);
#header("Refresh: 0; URL=fills.php");
}
}
?>
<form name="submitform" method="POST" action="fills.php">
<input type="submit" value="opslaan">
<input type="hidden" name="aktie" value="opslaan">
</form>
</body>
</html>
Ter aanvulling, er staat in de db ook een eerste kolom met de naam "nummer". Deze moet dus niet zichtbaar zijn in de form maar is er dus wel...
Met "code" bedoel ik "naam" van het tekstveld.
" type="text" size="30" maxlength="20" value="" >
gaat inderdaad niet werken.
moet met anders schrijft PHP niks naar het scherm, en dat is wat je nodig hebt als je HTML gebruikt. Moet dus worden
<td width="180"><input name="" type="text" size="30" maxlength="20" value="" >
<td width="180"><input name="gaat inderdaad niet werken.
moet met anders schrijft PHP niks naar het scherm, en dat is wat je nodig hebt als je HTML gebruikt. Moet dus worden
<td width="180"><input name="" type="text" size="30" maxlength="20" value="" >
}
werken als je met mysql werkt. Zie nl.php.net
Dat van die while hoeft niet Armorad, er wordt maar 1 record geselecteerd met de WHERE voorwaarde. Beetje onzinnig dan om een While te maken ;)
@ Eric
Wat ik me wel afvraag, waarom zoveel query's? maak er 1 van:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$query = mysql_query("SELECT datum,thuis,uit,voor,tegen,toto FROM wedstrijden WHERE nummer=$j ");
$gegevens = mysql_fetch_array($query);
// daarna gegevens uitlezen
$naam=$gegevens['naam'];
// dus $var = $gegevens['kolomnaam']
?>
$query = mysql_query("SELECT datum,thuis,uit,voor,tegen,toto FROM wedstrijden WHERE nummer=$j ");
$gegevens = mysql_fetch_array($query);
// daarna gegevens uitlezen
$naam=$gegevens['naam'];
// dus $var = $gegevens['kolomnaam']
?>
Waarom twee forms? Eén met data zonder submit en een zonder data met submit?
als je een input hebt als:
<input type='text' name='var' value=''>
en je zet bovenaan je script het volgende:
dan gaat prima werken hoor.
language construct "echo()"
ga ik gelijk even proberen. Eens kijken of dat het is...
@Robert Wholy f%$k, nooit aan gedacht! Dat ga ik gelijk aanpassen. Super!
@San the Crazy Nou, één voor ophalen van gegevens uit database, en één voor verzenden naar database.
Dat wil ik liefst gescheiden houden....
@Erik Kennelijk niet dus... :-) Maar ga toch nog even wel uitproberen zoals jij het hebt genoteerd. Kzie wel een verschilletje...
Ik laat later even weten of het wilde werken. Alvast dank voor de hulp zover ;-)
@Amorad Dat van die @Robert Wholy f%$k, nooit aan gedacht! Dat ga ik gelijk aanpassen. Super!
@San the Crazy Nou, één voor ophalen van gegevens uit database, en één voor verzenden naar database.
Dat wil ik liefst gescheiden houden....
@Erik Kennelijk niet dus... :-) Maar ga toch nog even wel uitproberen zoals jij het hebt genoteerd. Kzie wel een verschilletje...
Ik laat later even weten of het wilde werken. Alvast dank voor de hulp zover ;-)
Toch boden voorstellen geen optie.
Zoals ik het hierboven heb neergezet is het misschien toch wel wat onduidelijk...
Waar het kort gezegd op neerkomt:
Elk tekstveld heeft een eigen 'name' nodig. Anders weet het php-document immers niet welke waarden van welk veld waar in de databse moeten worden gezet.
Ter info: In mijn php-doc is het niet te zien, maar het aantal velden is niet van te voren vastgelegd. Deze worden door een voorgaande form bepaald door de gebruiker.
Het probleem ligt dus in het maken van die unieke veldnaam en het uitlezen van de waarde van dat specifieke veld.
geeft exact dezelfde waarde als Dat even tussendoor.
Maar als je dat dus laat echo-en, dan heeft de 'name' dus wel degelijk deze waarde ook gekregen, zo lijkt en blijkt het.
Echter... $thuis=$_POST['$nthuis']; daar gaat het mis... $thuis krijgt NIET de waarde/inhoud van het veld!
En da's nou net wat ik juist nodig heb...
Tot dusver nog steeds geen oplossing gevonden.
Dus als er iemand nog iets weet... ik hou me van harte aanbevolen.
Gewijzigd op 22/12/2005 21:04:00 door Eric
Dus als ik het goed begrijp weet je nooit van tevoren hoeveel tekstvelden je form zal hebben?
$thuis=$_POST['$nthuis'];
Het is normaal gesproken zo:
$thuis=$_POST['nthuis']; // name in inputveld = nthuis
Kan ook zo:
$thuis=$_POST[$nthuis]; // name in inputveld = de waarde die in $nthuis zit.
Quote:
$datum=$_POST['datum'];[/QUOTE]Dat klinkt niet echt als een datum (kolom van het type DATE), maar meer als aanstormende problemen met datums...
Een datum moet altijd als een DATE (of DATETIME) worden opgeslagen en nooit als een VARCHAR (wat hier waarschijnlijk het geval is).
Verder is het niet handig, zeg maar problematisch, wanneer je de php-code en html-code door elkaar heen gaat gooien. Dat is vragen om nog meer problemen. Maak een duidelijke scheiding van de codes.
Een datum moet altijd als een DATE (of DATETIME) worden opgeslagen en nooit als een VARCHAR (wat hier waarschijnlijk het geval is).
Verder is het niet handig, zeg maar problematisch, wanneer je de php-code en html-code door elkaar heen gaat gooien. Dat is vragen om nog meer problemen. Maak een duidelijke scheiding van de codes.
Dit bericht dwaalde af van het onderwerp.
Jan:
Dus als ik het goed begrijp weet je nooit van tevoren hoeveel tekstvelden je form zal hebben?
SanThe:
Maar dit schrijf je ook fout:
$thuis=$_POST['$nthuis'];
Het is normaal gesproken zo:
$thuis=$_POST['nthuis']; // name in inputveld = nthuis
Kan ook zo:
$thuis=$_POST[$nthuis]; // name in inputveld = de waarde die in $nthuis zit.
$thuis=$_POST['$nthuis'];
Het is normaal gesproken zo:
$thuis=$_POST['nthuis']; // name in inputveld = nthuis
Kan ook zo:
$thuis=$_POST[$nthuis]; // name in inputveld = de waarde die in $nthuis zit.
Edit: @Jan: Handig zo... Bedankt voor het idee.
Gewijzigd op 22/12/2005 22:08:00 door - SanThe -
Anders gaat ie maar op slot ;)
Lees de reacties maar eerst nog eens even.
Eric:
Offtopic dan maar: Het klinkt een beetje alsof ik je op je tenen heb getrapt. In dat geval, sorry dat was niet de bedoeling. Dit bericht dwaalde af van het onderwerp.
Ik hoop wel dat je wat met mijn kritieken doet, anders ga je echt nog tegen een hoop problemen aanlopen. En dat is zonde van de tijd.
Het was niet de bedoeling vervelend te zijn. Ik kon gisteren niet vinden wat de twee icoontjes rechtsbovenin elke reactie nou deden. Ik maakte een foutje in een reactie en wilde die aanpassen. maar door op de verschillende icoontjes te klikken, raakte ik van de regen in de drup.
Ik zag dat je al het teveel had verwijderd, waarvoor dank.
Ik weet nu ook wat ze doen, en wat ikzelf dus vooral niet moet doen :-)
@frank, nee hoor absoluut niet, maar het is zo zonde als er wordt afgedwaald van het probleem.
Ik neem het advies ook wel zeker ter harte ;-)
Maar vaak zie je dan in een forum dat er aan het einde van een topic nooit meer een oplossing komt, en dat wilde ik met de reactie kenbaar maken. Dus uiteraard wel dank hoor...
Al met al...
:-(
Ik denk dat ik alles maar gewoon via exel ga doen.
Ik heb helaas te weing tijd om het goed uit te zoeken... natuurlijk blijft ieder voorstel welkom.
Zeker op korte termijn.
Jan:
Dus als ik het goed begrijp weet je nooit van tevoren hoeveel tekstvelden je form zal hebben?
Ja, klopt.
PS Mitch/Adminstrators,
Ik zie nu dat er ineens wel popup venstertjes komen als ik over de twee icoontjes heen ga. En het wijzigicoontje doet nu ook wat ik verwacht.
Gisteravond was dat NIET zo....
Gisteravond deden beide icoontjes hetzelfde, namelijk quoten... En ik accepteerde dat maar als fout. Dat verklaart ook de "spam".
Dat je het even weet :-)
Waarschijnlijk iets mis met het forum geweest dus...
Doet er uw voordeel mee zou ik zeggen :-)