[hulp gevraagd]submit met radio
Simon om eerlijk te zijn je formulier zit wel een beetje raar in elkaar, normaal gebruik je of GET of POST wat je wel kunt doen als je verschillende formulieren wilt dat je bijvoorbeeld in je action een GET meegeeft en op basis daarvan een nieuw formulier opbouwt maar dan zou ik er zeker voor kiezen om de formulier velden te POSTEN :)
Hahaha.
Maar die $_GET, waar krijgt die dan zijn waarde? Je bent raar ......... daar vroeg je om in je edit. ;-)))
En waar doe je dat?
of zit ik nu in de verkeerde richting te denken? als je $_GET['id'] in je code zet haalt hij het toch automatisch van de url?
Verbeterings punten al je echo's in aan een variabel stoppen en op het laatste moment 1 echo doen :) probeer delen in functies te schrijven ipv alles linieer word de code een stuk makelijk te onderhouden! klopt mits je deze mee geeft aan de URL anders zou die NULL bevatten.
Zou het zoiets kunnen worden, moet je natuurlijk wel al die functies zelf schrijven:
[linebreak]Code (php) 1234567891011121314151617 <?phpif(isGeldigNum($_GET[id])){ if(isAlgepost($_POST[waarde])) { verwerkFormulier(); } else { toonFormulier($geefWaardeMeeAlsParam); }}else{toonError();}?> [linebreak] bijvoorbeeld je controlle op de $_GET variabelen een eigen functie schrijven die een waarde RETURN TRUE of FALSE en vervolgens maak je zelf een loop waarbij je controleerd of die waarde juist is word je loop weer kleiner en overzichtelijker. ook kan je een controlleren op je POST variabelen en bijvoorbeeld de rest doormiddel van een functie af laten handelen.
kijken of ik de code dan mooier en korter kan maken :P hmm.. ik weet eigenlijk nog niks van functies af... maar ik zal me er morgen eens een beetje in gaan verdiepen.
Hahaha.
Maar die $_GET, waar krijgt die dan zijn waarde?
De enige manier die kan verzinnen is dat hij hem mee krijgt in ze URI :P (handmatig)
www.blabla.com/?id=2
@pascal: het is maar 1 formuliertje maar zoals hierboven is uitgelegd krijgt je het ID via de GET. dat heb ik gedaan omdat je als je hebt gevote dat je dan gelijk naar de volgende pagina word doorverwezen.
(ik wil ooit ook nog checks voor ip's erop zetten zodat ze niet kunnen smokkelen met hun votes, maar dat gaat nu nog mijn pet te boven:P)
(bedankt dat jullie mij raar vinden dat is namelijk mijn tweede naam:P)
dit is nu mijn code (die is werkend) misschien kunnen jullie hem nog een keer bekijken en verbeterpunten aangeven.
@santhe: de $_GET['id'] krijgt zijn waarde van de url. dus @pascal: het is maar 1 formuliertje maar zoals hierboven is uitgelegd krijgt je het ID via de GET. dat heb ik gedaan omdat je als je hebt gevote dat je dan gelijk naar de volgende pagina word doorverwezen.
(ik wil ooit ook nog checks voor ip's erop zetten zodat ze niet kunnen smokkelen met hun votes, maar dat gaat nu nog mijn pet te boven:P)
(bedankt dat jullie mij raar vinden dat is namelijk mijn tweede naam:P)
dit is nu mijn code (die is werkend) misschien kunnen jullie hem nog een keer bekijken en verbeterpunten aangeven.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
$con = mysql_connect('192.168.1.155','ontwikkeling','kipei');
mysql_select_db('simon',$con);
(is_numeric($_GET['id']) ? $n_id=$_GET['id'] : die($_GET['id']." bevat geen numerieke waarde"));
if (ereg("^[0-9]+$", $_GET['id'])) {
$sql = 'SELECT *
FROM votes
WHERE id = "'.$_GET['id'].'"';
if (!$res = mysql_query($sql)) {
trigger_error (mysql_error ());
} else {
while($row = mysql_fetch_array($res)){
echo '<img src="'.$row['path'].'" />';
echo '<br/><br/>';
echo 'numbers voted for hot :'.$row['hot'].'<br/>';
$not = $row['totaal'] - $row['hot'];
echo 'numbers voted for not : '.$not.'<br/>';
echo 'total votes: '.$row['totaal'].'<br/>';
$gem = ($row['hot'] / $row['totaal']) * 100;
$afgerond = sprintf('%01.2f', $gem);
echo 'avarage score: '.$afgerond. '<br/><br/>';
}
$query = "SELECT COUNT(1) FROM votes";
if (!$result = mysql_query($query)) {
trigger_error (mysql_error ());
} else {
$row = mysql_fetch_row($result);
mysql_query('UPDATE votes SET hot WHERE id = '.$_GET['id'].'');
echo '<form action="#" method="post">';
echo '<input type="hidden" name="saveid" value="'.$_GET['id'].'" />';
echo 'HOT: <input type="radio" onclick="form.submit()" name="hot" value="1" />';
echo 'NOT: <input type="radio" onclick="form.submit()" name="not" value="0" />';
echo '</form>';
}
if(isset($_POST['hot'])){
if(is_numeric($_POST['saveid'])){
$sql ='UPDATE votes
SET hot = hot + '.$_POST['hot'].'
WHERE id='.$_POST['saveid'].'';
if($rst = mysql_query($sql)){
}else{
}
$sql ='UPDATE votes
SET totaal = totaal + 1
WHERE id='.$_POST['saveid'].'';
if($rst = mysql_query($sql)){
echo "<p>You Voted \"HOT\"</p>";
}else{
}
}
}
if(isset($_POST['not'])){
if(is_numeric($_POST['saveid'])){
$sql ="UPDATE votes
SET totaal = totaal + 1
WHERE id='".$_POST['saveid']."'";
if($rst = mysql_query($sql)){
echo "<p>You Voted \"NOT\"</p>";
}else{
}
}
}
}
}else{
echo 'the ID must be an integer';
}
?>
$con = mysql_connect('192.168.1.155','ontwikkeling','kipei');
mysql_select_db('simon',$con);
(is_numeric($_GET['id']) ? $n_id=$_GET['id'] : die($_GET['id']." bevat geen numerieke waarde"));
if (ereg("^[0-9]+$", $_GET['id'])) {
$sql = 'SELECT *
FROM votes
WHERE id = "'.$_GET['id'].'"';
if (!$res = mysql_query($sql)) {
trigger_error (mysql_error ());
} else {
while($row = mysql_fetch_array($res)){
echo '<img src="'.$row['path'].'" />';
echo '<br/><br/>';
echo 'numbers voted for hot :'.$row['hot'].'<br/>';
$not = $row['totaal'] - $row['hot'];
echo 'numbers voted for not : '.$not.'<br/>';
echo 'total votes: '.$row['totaal'].'<br/>';
$gem = ($row['hot'] / $row['totaal']) * 100;
$afgerond = sprintf('%01.2f', $gem);
echo 'avarage score: '.$afgerond. '<br/><br/>';
}
$query = "SELECT COUNT(1) FROM votes";
if (!$result = mysql_query($query)) {
trigger_error (mysql_error ());
} else {
$row = mysql_fetch_row($result);
mysql_query('UPDATE votes SET hot WHERE id = '.$_GET['id'].'');
echo '<form action="#" method="post">';
echo '<input type="hidden" name="saveid" value="'.$_GET['id'].'" />';
echo 'HOT: <input type="radio" onclick="form.submit()" name="hot" value="1" />';
echo 'NOT: <input type="radio" onclick="form.submit()" name="not" value="0" />';
echo '</form>';
}
if(isset($_POST['hot'])){
if(is_numeric($_POST['saveid'])){
$sql ='UPDATE votes
SET hot = hot + '.$_POST['hot'].'
WHERE id='.$_POST['saveid'].'';
if($rst = mysql_query($sql)){
}else{
}
$sql ='UPDATE votes
SET totaal = totaal + 1
WHERE id='.$_POST['saveid'].'';
if($rst = mysql_query($sql)){
echo "<p>You Voted \"HOT\"</p>";
}else{
}
}
}
if(isset($_POST['not'])){
if(is_numeric($_POST['saveid'])){
$sql ="UPDATE votes
SET totaal = totaal + 1
WHERE id='".$_POST['saveid']."'";
if($rst = mysql_query($sql)){
echo "<p>You Voted \"NOT\"</p>";
}else{
}
}
}
}
}else{
echo 'the ID must be an integer';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door simon
simon schreef op 06.11.2007 11:59:
@santhe: de $_GET['id'] krijgt zijn waarde van de url. dus www.blabla.com/?id=2
En waar doe je dat?
of zit ik nu in de verkeerde richting te denken?
Verbeterings punten al je echo's in aan een variabel stoppen en op het laatste moment 1 echo doen :) probeer delen in functies te schrijven ipv alles linieer word de code een stuk makelijk te onderhouden!
wat zou ik dan bijvoorbeeld beter in een functie kunnen schrijven? (ben een beginneling dus wil zoveel mogelijk leren)
Zou het zoiets kunnen worden, moet je natuurlijk wel al die functies zelf schrijven:
[linebreak]Code (php) 1234567891011121314151617 <?phpif(isGeldigNum($_GET[id])){ if(isAlgepost($_POST[waarde])) { verwerkFormulier(); } else { toonFormulier($geefWaardeMeeAlsParam); }}else{toonError();}?> [linebreak]
kijken of ik de code dan mooier en korter kan maken :P