Radio-button met TWEE variabelen
In het door mij te ontwikkelen bibliotheek-bestand zit ik met de volgende uitdaging:
Door het klikken op een radio-button wil ik (eigenlijk) twee waardes terug ontvangen. Kan dat?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<form action="admin_biebbeheer.php" method="POST" enctype="multipart/form-data">
<?php
while($rowSelectie = mysqli_fetch_array($cResultKeuze)) {
?>
<input type="radio" name="keuze" value="<?php echo $rowSelectie['waarde'] ; ?>" /><span class="standaardtekst"><?php echo $rowSelectie['inhoud'] ; ?></span><br />
// In bovenstaande regel wil ik dus een waarde terugkrijgen die beschikbaar is met $rowSelectie['extensie']
<?php } ?>
<br />
</form>
?>
<?php
while($rowSelectie = mysqli_fetch_array($cResultKeuze)) {
?>
<input type="radio" name="keuze" value="<?php echo $rowSelectie['waarde'] ; ?>" /><span class="standaardtekst"><?php echo $rowSelectie['inhoud'] ; ?></span><br />
// In bovenstaande regel wil ik dus een waarde terugkrijgen die beschikbaar is met $rowSelectie['extensie']
<?php } ?>
<br />
</form>
?>
Wie heeft voor mij een suggestie?
George
Gewijzigd op 14/07/2014 14:40:11 door George van Baasbank
Ikzelf doe meerdere waarden in de value gescheiden door een | waar ik later op explode.
Omdat de selectie slechts één mogelijkheid mag hebben is een checkbox niet aan de orde. De tweede variabele heb ik nodig om bij het uploaden van bestanden te controleren of er een juist bestand wordt ge-upload. Dus bij de keuze Audiobestand wil ik een mp3-extensie zien.
Jouw suggestie om met een | ga ik uitproberen.
Gewijzigd op 14/07/2014 22:41:40 door Frank Nietbelangrijk
Graag wil ik nog even terugkomen op mijn vraag:
De radiobuttons die ik gebruik vormen een onderdeel van het invoerdocument van mijn bibliotheek.
Op dit moment onderscheid ik zo'n 8 verschillende documenttypen waaronder Excel, Tekstdocument, Foto en Geluidsbestand.
Deze typen wil ik vooraf valideren of het bijgevoegde bestand wel van het goede type is.
Op dit moment kan ik, dankzij San The, de volgende validaties achter een radiobutton plaatsen:
Audio = mp3 of wav
Excel = xls of csv
Tekstdocumenten = doc, pdf of txt
Foto = jpg of bmp
De retourwaarde van de radiobutton is dan zoiets als 01-biebcat | doc | pdf | txt
1. Allereerst lees ik uit welke radiobutton is geselecteerd en maak middels een explode hier een array van
2. Ik test welke extensie het bijgevoegde document heeft
3. Ik vergelijk met de functie array_search of e.e.a. matcht
4. Zo ja, werk de database bij
5. Zo nee, geef een error-melding
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
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
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST') {
if($cKeuze == $cKnoptekst04) { // Nieuw document opslaan
$cTitel = mysqli_real_escape_string($verbinding,$_POST['titel']);
$cAuteur = mysqli_real_escape_string($verbinding,$_POST['auteur']);
$cDatum = mysqli_real_escape_string($verbinding,$_POST['datum']);
$cInputRadio = $_POST['keuze'];
$aExplode = explode(" | ",$cInputRadio);
$cCategorie = $aExplode[0];
$cDocType = $aExplode[1];
if(empty($cTitel)||empty($cAuteur)||empty($cDatum)||empty($cCategorie)) {
header("Location: error.php?error=989");
exit();
}
$cNu = date("Y-m-d H:i:s");
if ( isset( $_FILES['bestandsnaam']['name'] ) ){
$cUpload = $_FILES['bestandsnaam']['name'];
if($cUpload != "") {
$cUpload = $cNu . $cUpload;
$cUpload = VertaalBestandsnaam($cUpload);
} else {
header("Location: error.php?error=990");
exit();
}
}
// Upload bestand
if($cUpload != "" ) {
$cBestemming = ES_Biebmap . $cUpload;
} else {
$cBestemming = "";
}
// Brondoc: http://www.w3schools.com/php/php_file_upload.asp
// Extension uitlezen van upload-file
$cTemp = explode(".", $_FILES["bestandsnaam"]["name"]);
$cExtension = end($cTemp);
// Hier vind de test plaats of document juiste doc-type is
$nTest = array_search($cExtension,$aExplode);
if($nTest == NULL) {
header("Location: error.php?error= 988");
exit();
}
if($_FILES["bestandsnaam"]{"name"} != "" ) {
if ($_FILES["bestandsnaam"]["error"] > 0) {
header("Location: error.php?error=2");
exit();
} else {
if (file_exists(ES_Biebmap . $_FILES["bestandsnaam"]["name"])) {
header("Location: error.php?error=3");
exit();
} else {
move_uploaded_file($_FILES["bestandsnaam"]["tmp_name"],$cBestemming);
// Database bibliotheek bijwerken
$cEigenaar = $_SESSION['inlognaam'];
$cCat = $cInputRadio;
$sql = "INSERT INTO pod__bibliotheek (titel,auteur,categorie,bestandsnaam,eigenaar) VALUES ('$cTitel','$cAuteur','$cCat','$cBestemming','$cEigenaar')";
$cResultBieb = mysqli_query($verbinding,$sql);
}
}
}
}
mysqli_close($verbinding);
}
?>
if($_SERVER['REQUEST_METHOD'] === 'POST') {
if($cKeuze == $cKnoptekst04) { // Nieuw document opslaan
$cTitel = mysqli_real_escape_string($verbinding,$_POST['titel']);
$cAuteur = mysqli_real_escape_string($verbinding,$_POST['auteur']);
$cDatum = mysqli_real_escape_string($verbinding,$_POST['datum']);
$cInputRadio = $_POST['keuze'];
$aExplode = explode(" | ",$cInputRadio);
$cCategorie = $aExplode[0];
$cDocType = $aExplode[1];
if(empty($cTitel)||empty($cAuteur)||empty($cDatum)||empty($cCategorie)) {
header("Location: error.php?error=989");
exit();
}
$cNu = date("Y-m-d H:i:s");
if ( isset( $_FILES['bestandsnaam']['name'] ) ){
$cUpload = $_FILES['bestandsnaam']['name'];
if($cUpload != "") {
$cUpload = $cNu . $cUpload;
$cUpload = VertaalBestandsnaam($cUpload);
} else {
header("Location: error.php?error=990");
exit();
}
}
// Upload bestand
if($cUpload != "" ) {
$cBestemming = ES_Biebmap . $cUpload;
} else {
$cBestemming = "";
}
// Brondoc: http://www.w3schools.com/php/php_file_upload.asp
// Extension uitlezen van upload-file
$cTemp = explode(".", $_FILES["bestandsnaam"]["name"]);
$cExtension = end($cTemp);
// Hier vind de test plaats of document juiste doc-type is
$nTest = array_search($cExtension,$aExplode);
if($nTest == NULL) {
header("Location: error.php?error= 988");
exit();
}
if($_FILES["bestandsnaam"]{"name"} != "" ) {
if ($_FILES["bestandsnaam"]["error"] > 0) {
header("Location: error.php?error=2");
exit();
} else {
if (file_exists(ES_Biebmap . $_FILES["bestandsnaam"]["name"])) {
header("Location: error.php?error=3");
exit();
} else {
move_uploaded_file($_FILES["bestandsnaam"]["tmp_name"],$cBestemming);
// Database bibliotheek bijwerken
$cEigenaar = $_SESSION['inlognaam'];
$cCat = $cInputRadio;
$sql = "INSERT INTO pod__bibliotheek (titel,auteur,categorie,bestandsnaam,eigenaar) VALUES ('$cTitel','$cAuteur','$cCat','$cBestemming','$cEigenaar')";
$cResultBieb = mysqli_query($verbinding,$sql);
}
}
}
}
mysqli_close($verbinding);
}
?>
Deze wijze van werken gaat erg goed. Een ieder bedankt voor het meedenken
George
Gewijzigd op 15/07/2014 14:22:11 door George van Baasbank