Checkbox ID naar URL
Ik heb een lijst met checkboxes. En deze wil ik, indien aangevinkt, naar de URL sturen met een GET functie, maar ik weet niet echt waar ik mee moet beginnen.
Kan iemand mij op weg helpen?
(En ja, ik heb al op google gekeken. Maar ik kan nog niet echt code lezen dus het is voor mij dan best lastig om er iets bruikbaars van te maken. Het wordt gelukkig wel steeds beter ;)
Ik heb tot nu toe dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value="1"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value="1"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
Bvd, Tom
Gewijzigd op 06/11/2011 16:07:33 door Tom geen
waar maak je connection met je Database?
method="GET" gebruiken in je <form>-tag/
<link href="List.css" rel="stylesheet" type="text/css" />
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
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
<?php
require_once"query_foutafhandeling.php";
require_once"database_connect.php";
//----------------------------------------------------------------------------
//-----Query to select items from MySQL database------------------------------
$sql = "SELECT * FROM producten ORDER BY id ASC LIMIT 1,6";
$result = mysql_query($sql);
if ($result == false) {
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
//-----Variables witch are linked to the MySQL databade fields----------------
$pid= "ID";
$name = "Product_title";
$comments = "Product_info";
$checkbox = "checkbox";
//-----While loop witch execute the query-------------------------------------
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
require_once"query_foutafhandeling.php";
require_once"database_connect.php";
//----------------------------------------------------------------------------
//-----Query to select items from MySQL database------------------------------
$sql = "SELECT * FROM producten ORDER BY id ASC LIMIT 1,6";
$result = mysql_query($sql);
if ($result == false) {
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
//-----Variables witch are linked to the MySQL databade fields----------------
$pid= "ID";
$name = "Product_title";
$comments = "Product_info";
$checkbox = "checkbox";
//-----While loop witch execute the query-------------------------------------
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
Toevoeging op 06/11/2011 16:25:35:
- Aar - op 06/11/2011 16:18:06:
method="GET" gebruiken in je <form>-tag/
Klinkt misschien raar, maar zou je iets meer info kunnen vertellen. Want hier begrijp ik nog niet zoveel van.
Gewijzigd op 06/11/2011 16:26:39 door - Ariën -
Moet ik een <form> hebben dan?
je hebt toch een formulier, dus lijkt een <form> te me wel erg handig.
Je opening tag: <form> heeft ook een aantal parameters nodig, namelijk een action en een method. Dus een standaard <form> tag ziet er zo uit:
require_once "dit script.php"
en dan daaronder:
method="GET"
Maar dan weet die method toch nog steeds niet wat hij moet doen?
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
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
<?php
// Database connectie:
$Conn = mysqli_connect(MYSQLI_SERVER, MYSQLI_USERNAME, MYSQLI_PASSWORD, MYSQLI_DATABASENAME) or trigger_error('Er kon geen database connectie gemaakt worden. Probeer het later nog eens opnieuw.');
// Selecteer alles uit de database:
$SQL = mysqli_query($Conn, "SELECT ID,Product_title,Product_info FROM producten ORDER BY id ASC LIMIT 1,6") or trigger_error('De producten konden niet geselecteerd worden door een error.');
// Sluit de connectie:
mysqli_close($Conn);
// Kijken of er wel berichten zijn:
if(mysqli_num_rows($SQL) > 0) {
// Eerst form tags openen, anders kunnen we hier niets mee:
echo '<form method="GET">'; // Je kunt eventueel nog action toevoegen om de gebruiker naar ergens anders te sturen
// Nu gaan we alles tonen op de site:
while($Row = mysqli_fetch_assoc($SQL)) {
// Echo alles in een lijst:
echo '
<ul>
<li><input type="checkbox" name="id" value="on" /><a href="RCwebsite-index.php?id='.$Row['ID'].'">Naam: '.$Row['Product_title'].'</a><br />
Commentaar: '.$Row['Product_info'].'</li>
</ul>'; }
// Het formulier moet nog gesloten worden:
echo '</form>'; }
// Als er geen berichten zijn:
else {
echo 'Er bevinden zich geen producten in de database.'; }
?>
// Database connectie:
$Conn = mysqli_connect(MYSQLI_SERVER, MYSQLI_USERNAME, MYSQLI_PASSWORD, MYSQLI_DATABASENAME) or trigger_error('Er kon geen database connectie gemaakt worden. Probeer het later nog eens opnieuw.');
// Selecteer alles uit de database:
$SQL = mysqli_query($Conn, "SELECT ID,Product_title,Product_info FROM producten ORDER BY id ASC LIMIT 1,6") or trigger_error('De producten konden niet geselecteerd worden door een error.');
// Sluit de connectie:
mysqli_close($Conn);
// Kijken of er wel berichten zijn:
if(mysqli_num_rows($SQL) > 0) {
// Eerst form tags openen, anders kunnen we hier niets mee:
echo '<form method="GET">'; // Je kunt eventueel nog action toevoegen om de gebruiker naar ergens anders te sturen
// Nu gaan we alles tonen op de site:
while($Row = mysqli_fetch_assoc($SQL)) {
// Echo alles in een lijst:
echo '
<ul>
<li><input type="checkbox" name="id" value="on" /><a href="RCwebsite-index.php?id='.$Row['ID'].'">Naam: '.$Row['Product_title'].'</a><br />
Commentaar: '.$Row['Product_info'].'</li>
</ul>'; }
// Het formulier moet nog gesloten worden:
echo '</form>'; }
// Als er geen berichten zijn:
else {
echo 'Er bevinden zich geen producten in de database.'; }
?>
Niet getest :p. Want 'k heb geen zin om een database aan te maken :p
In je <form> tag kan je geen require_once neerzetten, de require_once zet je bijvoorbeeld onderin je pagina. Je laat het <form> dan sturen naar je eigen pagina met een <input type="hidden" name="uitvoeren" />. Dan laat je het PHP script nakijken of er een veld is verstuurt met de naam "uitvoeren", zo ja: dan voer je het PHP script uit.
Hij laat nu de lijst zien zoals ik hem al had, dus dat werkt goed. Maar hij stuurt nog niks naar de URL als ik het aanvink?
@Eddy
Ik heb nu een pagina met in een <div>tag:
<form action="processor.php" method="get">
...je formulieren...
</form>
Waarin ik action="processor.php" verander in action="dit_script.php"
En wat moet ik dan neerzetten in: ...je formulieren...?
Want mijn formulier wordt uit mijn SQL gehaald met "dit_script.php"
Gewijzigd op 06/11/2011 16:59:52 door Tom geen
Verdiep je anders eerst eens in HTML....
Want die haal ik uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
Ik heb dus geen vastwaardes en vast aantal checkboxes, deze komen uit mijn db.
Het is geen contact formulier o.i.d. maar meer een keuze menu waarin je product groepen kan kiezen.
In het script dat je hebt worden de formulieren geprint op het scherm, dus probeer die eens tussen de tag's te zetten, dan heb je een volledig werkend formulier.
Maar het blijft een formulier.
@- Aar -: Natuurlijk moet het proces daarna nog worden ontwikkeld, maar het formulier werkt.
Bedoel je dan zo iets:
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
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
<?php
<div id="Productenlijst">
<form action="checkbox_to_url.php" method="get">
[code]<?php
// Database connectie:
$Conn = mysqli_connect("****", "****", "****", "****") or trigger_error('Er kon geen database connectie gemaakt worden. Probeer het later nog eens opnieuw.');
//require_once"database_connect.php";
// Selecteer alles uit de database:
$SQL = mysqli_query($Conn, "SELECT ID,Product_title,Product_info FROM producten ORDER BY id ASC LIMIT 1,6") or trigger_error('De producten konden niet geselecteerd worden door een error.');
// Sluit de connectie:
mysqli_close($Conn);
// Kijken of er wel berichten zijn:
if(mysqli_num_rows($SQL) > 0) {
// Eerst form tags openen, anders kunnen we hier niets mee:
echo '<form method="GET">'; // Je kunt eventueel nog action toevoegen om de gebruiker naar ergens anders te sturen
// Nu gaan we alles tonen op de site:
while($Row = mysqli_fetch_assoc($SQL)) {
// Echo alles in een lijst:
echo '
<ul>
<li><input type="checkbox" name="di" value="on" /><a href="RCwebsite-index.php?id='.$Row['ID'].'">Naam: '.$Row['Product_title'].'</a><br />
Commentaar: '.$Row['Product_info'].'</li>
</ul>'; }
// Het formulier moet nog gesloten worden:
echo '</form>'; }
// Als er geen berichten zijn:
else {
echo 'Er bevinden zich geen producten in de database.'; }
?>
</form>
?>
<div id="Productenlijst">
<form action="checkbox_to_url.php" method="get">
[code]<?php
// Database connectie:
$Conn = mysqli_connect("****", "****", "****", "****") or trigger_error('Er kon geen database connectie gemaakt worden. Probeer het later nog eens opnieuw.');
//require_once"database_connect.php";
// Selecteer alles uit de database:
$SQL = mysqli_query($Conn, "SELECT ID,Product_title,Product_info FROM producten ORDER BY id ASC LIMIT 1,6") or trigger_error('De producten konden niet geselecteerd worden door een error.');
// Sluit de connectie:
mysqli_close($Conn);
// Kijken of er wel berichten zijn:
if(mysqli_num_rows($SQL) > 0) {
// Eerst form tags openen, anders kunnen we hier niets mee:
echo '<form method="GET">'; // Je kunt eventueel nog action toevoegen om de gebruiker naar ergens anders te sturen
// Nu gaan we alles tonen op de site:
while($Row = mysqli_fetch_assoc($SQL)) {
// Echo alles in een lijst:
echo '
<ul>
<li><input type="checkbox" name="di" value="on" /><a href="RCwebsite-index.php?id='.$Row['ID'].'">Naam: '.$Row['Product_title'].'</a><br />
Commentaar: '.$Row['Product_info'].'</li>
</ul>'; }
// Het formulier moet nog gesloten worden:
echo '</form>'; }
// Als er geen berichten zijn:
else {
echo 'Er bevinden zich geen producten in de database.'; }
?>
</form>
?>
Want dan krijg ik inderdaad wel een lijst, maar die had ik al een. Maar waar print hij dan de formulieren? want er gebeurd niet veel als ik een checkbox aan vink.
Gewijzigd op 06/11/2011 17:41:15 door Tom geen
Als het goed is, zou het de data nu in ieder geval aan dezelfde pagina doorgeven d.m.v. GET. Dat is toch wat je wou?
<form method="get">
en daar achter:
</form>
Dan krijg ik dus:
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
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
<?php
<form method="get">
[code]<?php
require_once"query_foutafhandeling.php";
require_once"database_connect.php";
//----------------------------------------------------------------------------
//-----Query to select items from MySQL database------------------------------
$sql = "SELECT * FROM producten ORDER BY id ASC LIMIT 1,6";
$result = mysql_query($sql);
if ($result == false) {
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
//-----Variables witch are linked to the MySQL databade fields----------------
$pid= "ID";
$name = "Product_title";
$comments = "Product_info";
$checkbox = "checkbox";
//-----While loop witch execute the query-------------------------------------
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
</form>
?>
<form method="get">
[code]<?php
require_once"query_foutafhandeling.php";
require_once"database_connect.php";
//----------------------------------------------------------------------------
//-----Query to select items from MySQL database------------------------------
$sql = "SELECT * FROM producten ORDER BY id ASC LIMIT 1,6";
$result = mysql_query($sql);
if ($result == false) {
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
//-----Variables witch are linked to the MySQL databade fields----------------
$pid= "ID";
$name = "Product_title";
$comments = "Product_info";
$checkbox = "checkbox";
//-----While loop witch execute the query-------------------------------------
while ($rows = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>' .'<input type="checkbox" name="id" value=="on"/>' . '<a href="RCwebsite-index.php?id=' . $rows[$pid] . '">Name: ' . $rows[$name] . '</a><br />'
. 'Comment: ' . $rows[$comments] . '</li>' ;
echo '</ul>';
}
?>
</form>
?>
Met deze toevoeging heb ik dus een formulier en dus ook de mogelijkheid om info te verzenden naar de URL (wat zonden <form> tag's niet zou kunnen).
En moet ik nu dus nog een submit button toevoegen de een script uitvoerd om de info aan de URL toevoegd?
Klopt dit? of zit ik nog steeds verkeerd te denken?
Gewijzigd op 06/11/2011 17:43:11 door Tom geen