Invulvelden opslaan achter de juiste naam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John Adje

John Adje

05/10/2012 12:54:45
Quote Anchor link
Ik heb in mysql een tabel staan met naam, team en datum.

Nadat iemand is ingelogd krijgt hij een tabel van zijn eigen team te zien/
Nu wil een een tabel krijgen waarin ziet:
Naam:
Datum:

De datum moet in te vullen zijn en dan door middel van een opslaan-knop opgeslagen worden in de tabel onder datum bij de juiste persoon.

Wie heeft een idee??
 
PHP hulp

PHP hulp

23/12/2024 07:59:06
 
Chris PHP

Chris PHP

05/10/2012 12:58:09
Quote Anchor link
Dan draai je een query en haal je de team leden op. Die zet je met een while loop in je tabel. Vervolgens maak je dus voor de datums een form met input velden, die met de while loop achter/onder de naam wordt weergegeven.

De opslaan knop is gewoon een submit knop die de ingevulde datums weer insert en/of update in je database.
 
Kris Peeters

Kris Peeters

05/10/2012 12:58:17
Quote Anchor link
Hoe heet die tabel?

En wat is de betekenis van die datum in die tabel?
 
- Ariën  -
Beheerder

- Ariën -

05/10/2012 13:00:58
Quote Anchor link
Dit is eigenlijk best wel basis PHP scripting. het komt eigenlijk neer op de volgende constructie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
 // formulier is verstuurd, voer hier wat validatiecontroles uit (is een veld ingevuld?), en indien dit zo is, voer dan een INSERT (toevoegen) of een UPDATE  (aanpassen) query uit.
} else { ?>

Hier plaats je jouw formulier
<?php
}
?>


Ik zou zeggen: Volg de tutorial eens op http://www.phptuts.nl
Gewijzigd op 05/10/2012 13:02:16 door - Ariën -
 
John Adje

John Adje

05/10/2012 13:04:20
Quote Anchor link
Die datum wil zeggen dat ze een gesprek gehad hebben.
Die leden in de tabel zetten lukt wel


echo("<table align=center border=1 WIDTH=800 bordercolor=123456");

echo("<TR> <TD align=left ><b>Naam</b></TD><TD><b>Team</b></TD><TD><b>Datum</b></TD> </TR>");
while($weergeven = mysql_fetch_array($gegevens)){

echo("
<TR>
<TD align=left >".$weergeven['naam']." </TD>
<TD>".$weergeven['Team']."</TD>
<TD >".$weergeven['???']." </TD></TR>");
}
echo("</TABLE>");

Alleen hoe op de plaats van doe vraagtekens het invulveld??
 
Chris PHP

Chris PHP

05/10/2012 13:07:06
Quote Anchor link
- Aar - op 05/10/2012 13:00:58:
Dit is eigenlijk best wel basis PHP scripting. het komt eigenlijk neer op de volgende constructie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
 // formulier is verstuurd, voer hier wat validatiecontroles uit (is een veld ingevuld?), en indien dit zo is, voer dan een INSERT (toevoegen) of een UPDATE  (aanpassen) query uit.
} else { ?>

Hier plaats je jouw formulier
<?php
}
?>


Ik zou zeggen: Volg de tutorial eens op http://www.phptuts.nl


Aar,

Hoe helpt dat de TS om naam en datum bij elkaar te zetten en juist te updaten/inserten in zijn database?

Wat ik lees is dat hij het volgende wil.

Henk |_____________| Save
Piet |_____________| Save
Jan |_____________| Save
Kees |_____________| Save

En dus zal |___________| een input veld zijn waar hij de datum wil invullen.

Jou stukje code hebt hem volgens mij niet echt met wat hij wil bereiken lijkt me.
 
Kris Peeters

Kris Peeters

05/10/2012 13:09:39
Quote Anchor link
John Adje op 05/10/2012 13:04:20:
Die datum wil zeggen dat ze een gesprek gehad hebben.


Nee, het is me nog steeds niet duidelijk wat die tabel is en wat datum betekent.
De naam van de tabel zou al helpen
 
Chris PHP

Chris PHP

05/10/2012 13:10:23
Quote Anchor link
John Adje op 05/10/2012 13:04:20:
Die datum wil zeggen dat ze een gesprek gehad hebben.
Die leden in de tabel zetten lukt wel


echo("<table align=center border=1 WIDTH=800 bordercolor=123456");

echo("<TR> <TD align=left ><b>Naam</b></TD><TD><b>Team</b></TD><TD><b>Datum</b></TD> </TR>");
while($weergeven = mysql_fetch_array($gegevens)){

echo("
<TR>
<TD align=left >".$weergeven['naam']." </TD>
<TD>".$weergeven['Team']."</TD>
<TD >".$weergeven['???']." </TD></TR>");
}
echo("</TABLE>");

Alleen hoe op de plaats van doe vraagtekens het invulveld??


Gewoon je datum veld van je datase invullen.
Dus dan krijg je dit of niet hoe dat veld heet in je database. Voor het invulveld doe je dat zo


<TD ><input type=”text” name=”datum” value=”’.$weergeven['datum'].’”/> </TD></TR>);


Ook kun je de opmaak van je tabellen beter in CSS doen, en je table gewoon een id of class geven. Dat werkt makkelijker en overzichtelijker, ook hoef je dan maar 1 wijziging te doen wanneer je de kleur of layout van je tabellen anders wilt hebben. Inline CSS/Style wordt eigenlijk nooit aangeraden.

Let wel dat ik voor de echo's enkele ' quotes geberuik. Dan hoef je niets te gaan escapen aangezien HTML dubbelenquotes " gebruikt
Gewijzigd op 05/10/2012 13:14:12 door Chris PHP
 
John Adje

John Adje

05/10/2012 13:13:47
Quote Anchor link
Henk |_____________| Save
Piet |_____________| Save
Jan |_____________| Save
Kees |_____________| Save

En dus zal |___________| een input veld zijn waar hij de datum wil invullen.

Dit is inderdaad de bedoeling!
 
Chris PHP

Chris PHP

05/10/2012 13:35:32
Quote Anchor link
John,

Zorg dat je de echo's tussen enkele quotes zet. Dit verkomt een hoop escapen in HTML. Nog beter is gewoon om uit php te gaan voor z'n tabel als dit, nu ben je de webserver onnodig aan het belasten aangezien PHP op de server wordt uitgevoerd.

Let wel dat ik een hoop heb aangepast in je tabel. HTML wordt voornamelijk in kleine letters gedaan, dus <td> ipv <TD> ook wordt <b> niet meer gebruikt hier hebben we CSS voor of de <th> (table header). Deze maakt de tekst standaard bold.

Let wel dat de usr_id moet kloppen aan jou veldnaam voor het unieke user id dat ze hebben, zodat je straks weet waar je iets moet inserten!

Maak het zo:

Je formulier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
//Je php code hier
?>


<table>
<tr><th>Naam</th><th>Team</th><th>Datum</th></tr>
<form action=je_pagina_hier.php method=post />
<?php
while($weergeven = mysql_fetch_array($gegevens)){

echo('
<tr>
<td>'
.$weergeven['naam'].'</td>
<td>'
.$weergeven['Team'].'</td>
<td><input type=”text” name=”datum” value=”'
.$weergeven['datum'].'”</td>
<td><input type=”submit” value=”Save” name=”submit” /></tr>
<input type=”hidden” name=”usr_id” value=”'
.$weergeven['usr_id'].'” />'
}
?>

</form></table>


CSS
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
Table {
Border: solid 1px #123456;
Width: 800px;
}

th {
text-align: left;
}

td {
text-align: left;
}


Nu is je inline CSS eruit en netjes in een CSS bestand gezet. Die hoef je nu alleen nog maar te includen in je pagina. Dan komt de layout er precies zo uit te zien zoals jij het had.

Tevens zitten er een hoop fouten in je code, ik zal ze hieronder noemen.

- De waardes van je table stonden niet tussen quotes “”
- Je echo’d alles, beter is voor grotere HTML stukken om gewoon even uit PHP te gaan
- Je gebruikt dubbele quotes voor echo’s, is niet echt fout maar af te raden door veel escapes.
- Geen <form>, dus er kan niets verzonden worden.
Gewijzigd op 05/10/2012 13:56:07 door Chris PHP
 
John Adje

John Adje

05/10/2012 13:56:46
Quote Anchor link
Ik heb nu onderstaande code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
34
35
36
37
38
<HTML>
<HEAD>
<TITLE>Scholing</TITLE>
</HEAD>
<BODY>

<?php
echo "<br>";
echo 'Overzicht van:';

$tabel="XX";
$dbhost = "localhost";
$dbdb = "XXX"
$dbgebruiker = "XXX"
$dbww = "XXX"

mysql_connect($dbhost,$dbgebruiker,$dbww) or die(mysql_error());
mysql_select_db($dbdb) or die(mysql_error());
$sql=mysql_query($query);
$gegevens = mysql_query("SELECT * FROM $tabel ");
?>



<table>
<tr><th>Naam</th><th>Team</th><th>Datum</th></tr>
<form action=index.php method=post />

<?php
while($weergeven = mysql_fetch_array($gegevens)){

echo(
<
tr>
<
td>.$weergeven['naam'].</td>
<
td>.$weergeven['Team'].</td>
<
td><input type=text name=datum value=.$weergeven['datum'].</td><td><input type=submit value=Save name=submit /></tr>
}

echo(</form></table>);
?>


Maar dit werkt nog niet...
Gewijzigd op 05/10/2012 19:26:26 door Bas IJzelendoorn
 
Chris PHP

Chris PHP

05/10/2012 14:02:05
Quote Anchor link
Wat werkt er niet? Krijg je een foutmelding?

P.S. je hebt een 'oudere versie' ik heb net nog wat veranderingen gedaan!
Gewijzigd op 05/10/2012 14:02:51 door Chris PHP
 
John Adje

John Adje

05/10/2012 14:10:54
Quote Anchor link
De code nu naar de jusite versie bijgewerkt.
Ik krijg nu:

HTTP-fout 500 (Internal Server Error): Er is een onverwachte voorwaarde gevonden toen de server het verzoek wilde uitvoeren.
 
Chris PHP

Chris PHP

05/10/2012 14:19:34
Quote Anchor link
Dat heeft waarschijnlijk iets met je apache server te maken. Het is een Internal Server Error, niets met je script. Draait je webserver goed?

Is PHP correct geinstalleerd?
 
John Adje

John Adje

05/10/2012 14:53:32
Quote Anchor link
Ja, heb er veel andere scriptjes op draaien en geeft geen problemen
 
Chris PHP

Chris PHP

05/10/2012 14:57:50
Quote Anchor link
Haal de / eens weg achter bij <form>, die hoort er niet in.
 
- SanThe -

- SanThe -

05/10/2012 15:06:39
Quote Anchor link
Gebruik de juiste quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// NIET
echo(</form></table>);

// Maar
echo '</form></table>';
?>
 
John Adje

John Adje

05/10/2012 15:07:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
34
35
36
37
38
<HTML>
<HEAD>
<TITLE>Scholing</TITLE>
</HEAD>
<BODY>


<?php
echo "<br>";
echo 'Overzicht van:';

$tabel="xxx";
$dbhost = "xxx";
$dbdb = "xx";
$dbgebruiker = "xxx";
$dbww = "xxx";

mysql_connect($dbhost,$dbgebruiker,$dbww) or die(mysql_error());
mysql_select_db($dbdb) or die(mysql_error());
$sql=mysql_query($query);
$gegevens = mysql_query("SELECT * FROM $tabel");
?>


<table>
<tr><th>Naam</th><th>Team</th><th>Datum</th></tr>
<form action=index.php method=post >

<?php
while($weergeven = mysql_fetch_array($gegevens)){

echo(
<
tr>
<
td>.$weergeven['naam'].</td>
<
td>.$weergeven['naam'].</td>
<
td><input type=text name=datum value=.$weergeven['datum'].</td><td><input type=submit value=Save name=submit /></tr>
}

echo(</form></table>);
?>


Dit heb ik nu staan, maar ik krijg nog dezelfde melding...
Gewijzigd op 05/10/2012 19:26:11 door Bas IJzelendoorn
 
- SanThe -

- SanThe -

05/10/2012 15:10:54
Quote Anchor link
- SanThe - op 05/10/2012 15:06:39:
Gebruik de juiste quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// NIET
echo(</form></table>);

// Maar
echo '</form></table>';
?>
 
Chris PHP

Chris PHP

05/10/2012 15:13:31
Quote Anchor link
- SanThe - op 05/10/2012 15:10:54:
- SanThe - op 05/10/2012 15:06:39:
Gebruik de juiste quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// NIET
echo(</form></table>);

// Maar
echo '</form></table>';
?>




Hij gebruikt mijn oude script, hier zet hij ' neer, maar in word komt er een andere quote te staan. En omdat hier het reply gedeelte flipt onder IE7 kan ik geen lange berichten typen, en moet ik dat eerst in word doen.
 
John Adje

John Adje

05/10/2012 15:24:09
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
34
35
36
37
38
<HTML>
<HEAD>
<TITLE>Scholing</TITLE>
</HEAD>
<BODY>


<?php
echo "<br>";
echo 'Overzicht van:';

$dbhost = "xx";
$dbdb = "xxx";
$dbgebruiker = "xxx";
$dbww = "xxx";

mysql_connect($dbhost,$dbgebruiker,$dbww) or die(mysql_error());
mysql_select_db($dbdb) or die(mysql_error());
$sql=mysql_query($query);
$gegevens = mysql_query("SELECT * FROM $atermes");
?>


<table>
<tr><th>Naam</th><th>Team</th><th>Datum</th></tr>
<form action=index.php method=post >

<?php
while($weergeven = mysql_fetch_array($gegevens)){

echo
(
<
tr>
<
td>.$weergeven['naam'].</td>
<
td>.$weergeven['naam'].</td>
<
td><input type=text name=datum value=.$weergeven['datum'].</td><td><input type=submit value=Save name=submit /></tr>)
}

echo</form></table>;
?>


Helaas nog zonder resultaat. Weet echt niet wat er mis is...

Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 05/10/2012 19:25:48 door Bas IJzelendoorn
 



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.