Daten aus MSSQL DB auslesen und den Richtigen RadioButton aktiv machen
Hallo,
Ich habe folgendes Problem.
Ich habe ein PHP Formular wo ich Daten in eine MSSQL DB schreibe.
Da sind auch vier so Radio Buttons zum anklicken.
Button 1, 2, 3, 4
Das schreibt dann die Zahl 1, 2, 3, 4 in die DB.
Dann habe ich noch ein Formular wo ich die Daten ändern kann.
Da lese ich aus der DB die Daten. Und jetzt meine Frage:
Wie kann ich das machen wenn z.B. die Zahl 3 in der DB steht sollte auch der
Radio Button 3 hinterlegt sein?
Gruß
Helmut
Ich habe folgendes Problem.
Ich habe ein PHP Formular wo ich Daten in eine MSSQL DB schreibe.
Da sind auch vier so Radio Buttons zum anklicken.
Button 1, 2, 3, 4
Das schreibt dann die Zahl 1, 2, 3, 4 in die DB.
Dann habe ich noch ein Formular wo ich die Daten ändern kann.
Da lese ich aus der DB die Daten. Und jetzt meine Frage:
Wie kann ich das machen wenn z.B. die Zahl 3 in der DB steht sollte auch der
Radio Button 3 hinterlegt sein?
Gruß
Helmut
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167355
Url: https://administrator.de/contentid/167355
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
21 Kommentare
Neuester Kommentar
Du musst mit mit 'checked' und 'unchecked' arbeiten.
Ein nettes Tutorial (allerdings auf Englisch) findest Du hier: http://www.homeandlearn.co.uk/php/php4p10.html
Ein nettes Tutorial (allerdings auf Englisch) findest Du hier: http://www.homeandlearn.co.uk/php/php4p10.html
Ich verstehe seine Frage anders, er möchte einen Radio Butten einen Wert zuweisen.
Das geht so
Wie mein vorredner sagte, das checked="checked" bedeutet das er standardmäßig markiert ist.
Falls das nicht gewünscht ist einfach entfernen.
Das geht so
<input type="radio" checked="checked" name="" value="Hier_dein_Wert" />
Wie mein vorredner sagte, das checked="checked" bedeutet das er standardmäßig markiert ist.
Falls das nicht gewünscht ist einfach entfernen.
Steht in meinem Beitrag oder in denen vor mir.
Musst noch etwas ergänzen:
Musst noch etwas ergänzen:
// Das dann für alle Radio buttons
if($row->value == 1) {
echo "<input type='radio' name='Note' value='1' id='note_1' checked="checked" /><span class='abstand'>Note 1</span>";
} else {
echo "<input type='radio' name='Note' value='1' id='note_1' /><span class='abstand'>Note 1</span>";
}
$note = (int)$dsatz['note']; // dein wert aus der DB
for($i=1; $i <= 4; $i++) {
if($note == 1) {
echo "<input type='radio' name='Note ".$i."' value='".$note."' id='note_".$i."' checked='checked' /><span class='abstand'>Note ".$i."</span>";
} else {
echo "<input type='radio' name='Note ".$i."' value='".$note."' id='note_".$i."' ' /><span class='abstand'>Note ".$i."</span>";
}
}
Hi Evil,
. . . hier wäre die Bedingung nur erfüllt, wenn der Wert aus der DB tatsächlich "1" ist.
Durch . . .
. . . erhält jeder Radio-Button einen anderen Namen: "Note 1", "Note 2" . . . usw., der außerdem ein Leerzeichen enthält.
Hi Helmut,
trotz der 2 kleinen Fehler ist der Code-Schnipsel von Evil ganz brauchbar. Den Wert aus der DB lass' ich jetzt mal per rand(1 ,4) erzeugen,
also "Zufallszahl", du kannst aber trotzdem einen anderen Radio anklicken, dessen Wert dann gesendet wird.
Evil's Code-Schnipsel, etwas ab(um)geändert . . .
Wenn du nicht weißt, wie du gesendete Formulardaten im PHP-Script ansprechen sollst, kann es hilfreich sein, sich das Array $_POST
mit der Funktion print_r($_POST) ausgeben zu lassen. Bei Formularelementen, die durch ein PHP-Script erzeugt und mit Werten gefüllt
werden, kann ein Blick auf den Quelltext der erzeugten Ausgabe im Browser ebenfalls helfen, Fehler zu entdecken.
Gruß
Günni
Ungetestet . . .
$note = (int)$dsatz['note']; // dein wert aus der DB
if($note == 1) { . . .
if($note == 1) { . . .
. . . hier wäre die Bedingung nur erfüllt, wenn der Wert aus der DB tatsächlich "1" ist.
Durch . . .
name='Note ".$i."'
. . . erhält jeder Radio-Button einen anderen Namen: "Note 1", "Note 2" . . . usw., der außerdem ein Leerzeichen enthält.
Hi Helmut,
trotz der 2 kleinen Fehler ist der Code-Schnipsel von Evil ganz brauchbar. Den Wert aus der DB lass' ich jetzt mal per rand(1 ,4) erzeugen,
also "Zufallszahl", du kannst aber trotzdem einen anderen Radio anklicken, dessen Wert dann gesendet wird.
Evil's Code-Schnipsel, etwas ab(um)geändert . . .
<?php
if(isset($_POST['Note'])){
echo "Gesendet: Note ".$_POST['Note'];
}
/*
* Wenn Radio-Buttons gesendet werden, die alle den gleichen Namen haben,
* wird nur der Wert eines Buttons gesendet, der angeklickt ist.
*/
echo "<pre>";
print_r($_POST);
echo "<pre>";
?>
<form action="" method="post">
<?php
$note = rand(1, 4); //Wert aus DB (Zufallszahl)
for($i=1; $i <= 4; $i++) {
if($note == $i) {
echo "<input type='radio' name='Note' value='".$i."' id='note_".$i."' checked='checked' /><span class='abstand'>Note ".$i."</span>";
} else {
echo "<input type='radio' name='Note' value='".$i."' id='note_".$i."' ' /><span class='abstand'>Note ".$i."</span>";
}
}
?>
<p><input type="submit" /></p>
</form>
Wenn du nicht weißt, wie du gesendete Formulardaten im PHP-Script ansprechen sollst, kann es hilfreich sein, sich das Array $_POST
mit der Funktion print_r($_POST) ausgeben zu lassen. Bei Formularelementen, die durch ein PHP-Script erzeugt und mit Werten gefüllt
werden, kann ein Blick auf den Quelltext der erzeugten Ausgabe im Browser ebenfalls helfen, Fehler zu entdecken.
Gruß
Günni
@helmuthelmut2000,
Ja, auch das geht.
Gruß
Günni
Geht das auch mit einem select Feld?
Ja, auch das geht.
<?php
/*
* z.B. Wert aus Formular
*/
$str="e3";
/*
* z.B. Ergebnis aus DB-Abfrage
*/
$str_arr=array(0 => "e1", 1 => "e2", 2 => "e3", 3 => "e4");
/*
* Ausswahlliste
*/
echo "<select name='selList'>";
foreach($str_arr as $in_arr){
if($in_arr == $str){
echo "<option value='$in_arr' selected>$in_arr</option>";
}else{
echo "<option value='$in_arr'>$in_arr</option>";
}
}
echo "</select>";
?>
Gruß
Günni
@helmuthelmut2000,
Wenn du im Select Texte ausgeben willst (Seite 1 - Seite n, oder irgendwas), so kannst du diese ja in einem
Array ablegen. Die Indexe legst du ebenfalls in einem Array ab. Jetzt vergleichst du dein Abfrageergebnis in einer
foreach-Schleife mit den Indexen und gibst bei Übereinstimmung einfach den entspr. Eintrag aus dem Textearray
als "selected" aus. Z.B.:
Gruß
Günni
Kann man das auch irgendwie so machen das man einen anderen Wert aus der DB liest und schreibt.
echo "<option value='5'>Seite 5</option>";
Jetzt sollte, wenn die 5 aus der DB gelesen wird, im Scroll die Seite 5 gleich angezeigt werden.
echo "<option value='5'>Seite 5</option>";
Jetzt sollte, wenn die 5 aus der DB gelesen wird, im Scroll die Seite 5 gleich angezeigt werden.
Wenn du im Select Texte ausgeben willst (Seite 1 - Seite n, oder irgendwas), so kannst du diese ja in einem
Array ablegen. Die Indexe legst du ebenfalls in einem Array ab. Jetzt vergleichst du dein Abfrageergebnis in einer
foreach-Schleife mit den Indexen und gibst bei Übereinstimmung einfach den entspr. Eintrag aus dem Textearray
als "selected" aus. Z.B.:
<?php
/*
* Mit den Werten wird die Select-Box gefüllt.
*/
$option_arr=array(1 => "Seite 1", 2 => "Seite 2", 3 => "Seite 3", 4 => "Seite 4", 5 => "Seite 5");
/*
* Die Schlüssel(Indexe) in einem Array ablegen.
*/
$key_arr=array_keys($option_arr);
/*
* Per Zufall ein Abfrageergebnis erzeugen.
*/
$data_set=rand(1,5);
/*
* Select-Box "bauen".
*/
echo "<select>";
foreach($key_arr as $key){
/*
* Bei Übereinstimmung von Abfrageergebnis mit einem Index gibst du den entsprechenden
* Eintrag aus "$option_arr" als "selected" aus.
*/
if($key == $data_set){
echo "<option value='$key' selected>$option_arr[$key]</option>";
/*
* Alle anderen Einträge werden ohne "selected" ausgegeben.
*/
}else{
echo "<option value='$key'>$option_arr[$key]</option>";
}
}
echo "</select>";
?>
Gruß
Günni
@helmuthelmut2000,
Im zweiten Beispiel in Zeile 13 ($data_set=rand(1,5); ).
Dort habe ich ein Abfrageergebnis ja einfach per Zufall erzeugt.
Die Texte des Selects sind ja in $option_arr abgelegt, und die Indexe von $option_arr in $key_arr.
In der foreach-Schleife (foreach($key_arr as $key){ . . . ) wird nun geprüft, ob ein
vorhanderner $key mit einem Abfrageergebnis übereinstimmt. Wenn ja, wird im Select
ein entspr. Eintrag als "selected" ausgegeben.
Gruß
Günni
Und wo gibt man da den Wert aus der DB an?
Im zweiten Beispiel in Zeile 13 ($data_set=rand(1,5); ).
Dort habe ich ein Abfrageergebnis ja einfach per Zufall erzeugt.
Die Texte des Selects sind ja in $option_arr abgelegt, und die Indexe von $option_arr in $key_arr.
In der foreach-Schleife (foreach($key_arr as $key){ . . . ) wird nun geprüft, ob ein
vorhanderner $key mit einem Abfrageergebnis übereinstimmt. Wenn ja, wird im Select
ein entspr. Eintrag als "selected" ausgegeben.
Gruß
Günni