Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Daten aus MSSQL DB auslesen und den Richtigen RadioButton aktiv machen

Frage Entwicklung PHP

Mitglied: helmuthelmut2000

helmuthelmut2000 (Level 2) - Jetzt verbinden

01.06.2011 um 16:51 Uhr, 5234 Aufrufe, 21 Kommentare

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
Mitglied: BAMBOIHH
01.06.2011 um 17:48 Uhr
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
Bitte warten ..
Mitglied: nxclass
01.06.2011 um 22:47 Uhr
01.
<input type="radio" checked="checked" name="" value="" />
Bitte warten ..
Mitglied: EvilMoe
01.06.2011 um 23:42 Uhr
Ich verstehe seine Frage anders, er möchte einen Radio Butten einen Wert zuweisen.
Das geht so
01.
<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.
Bitte warten ..
Mitglied: helmuthelmut2000
02.06.2011 um 09:58 Uhr
Hallo,

Nein, Ich hab das so in die DB geschrieben:

echo "<input type='radio' name='Note' value='1' id='note_1' /><span class='abstand'>Note 1</span>";
echo "<input type='radio' name='Note' value='2' id='note_2' /><span class='abstand'>Note 2</span>";
echo "<input type='radio' name='Note' value='3' id='note_3' /><span class='abstand'>Note 3</span>";
echo "<input type='radio' name='Note' value='4' id='note_4' /><span class='abstand'>Note 4</span>";

Wenn man jetzt den Note 1 Button aktiv hat dann schreibt es die 1 in eine DB.

Mit dem nächsten Formular lese ich die Daten wieder aus und will sie evt auch ändern.

Wie muss ich das machen damit mir zB. auch wieder bei der 1 der Button 1 aktiv ist und ich evt auf die 3 ändern kann?
Bitte warten ..
Mitglied: EvilMoe
02.06.2011 um 10:01 Uhr
Steht in meinem Beitrag oder in denen vor mir.
Musst noch etwas ergänzen:

01.
// Das dann für alle Radio buttons 
02.
if($row->value == 1) { 
03.
echo "<input type='radio' name='Note' value='1' id='note_1' checked="checked" /><span class='abstand'>Note 1</span>"; 
04.
} else { 
05.
echo "<input type='radio' name='Note' value='1' id='note_1'  /><span class='abstand'>Note 1</span>"; 
06.
}
Bitte warten ..
Mitglied: helmuthelmut2000
02.06.2011 um 21:17 Uhr
Hallo,

Das hab ich jetzt so versucht, aber da bekomme ich eine Fehlermeldung:

Notice: Undefined variable: row in ............

Was stimmt denn da nicht?
Bitte warten ..
Mitglied: EvilMoe
02.06.2011 um 21:20 Uhr
Da muss der Wert aus deiner Datenbank stehen, der Wert deines Radios.
Bitte warten ..
Mitglied: helmuthelmut2000
02.06.2011 um 21:43 Uhr
Hallo,

Das geht irgendwie nicht richtig.
In dem Formular hab ich noch ein anderes Textfeld das lese ich so aus der DB:

echo "<input value='" . $dsatz['Bezeichnung'] . "' type='text' name='bezeichnung' id='bezeichnung' size='20' maxlength='18' />";

Wie ist das denn dann bei den Radiobutton, da heist das DB Feld Note und die Werte sind 1 2 3 4 und leer.

Danke.
Bitte warten ..
Mitglied: EvilMoe
02.06.2011 um 21:50 Uhr
01.
$note = (int)$dsatz['note']; // dein wert aus der DB 
02.
 
03.
for($i=1; $i <= 4; $i++) { 
04.
  if($note == 1) { 
05.
       echo "<input type='radio' name='Note ".$i."'  value='".$note."' id='note_".$i."' checked='checked' /><span class='abstand'>Note ".$i."</span>"; 
06.
  } else { 
07.
      echo "<input type='radio' name='Note ".$i."'  value='".$note."' id='note_".$i."' '  /><span class='abstand'>Note ".$i."</span>"; 
08.
09.
}
Ungetestet
Bitte warten ..
Mitglied: Guenni
03.06.2011 um 11:07 Uhr
Hi Evil,

Ungetestet . . .

$note = (int)$dsatz['note']; // dein wert aus der DB
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 . . .

01.
<?php 
02.
if(isset($_POST['Note'])){ 
03.
 echo "Gesendet: Note ".$_POST['Note']; 
04.
05.
/* 
06.
* Wenn Radio-Buttons gesendet werden, die alle den gleichen Namen haben, 
07.
* wird nur der Wert eines Buttons gesendet, der angeklickt ist. 
08.
*/ 
09.
echo "<pre>"
10.
print_r($_POST); 
11.
echo "<pre>"
12.
?> 
13.
<form action="" method="post"
14.
<?php 
15.
$note = rand(1, 4); //Wert aus DB (Zufallszahl) 
16.
 
17.
for($i=1; $i <= 4; $i++) { 
18.
  if($note == $i) { 
19.
       echo "<input type='radio' name='Note'  value='".$i."' id='note_".$i."' checked='checked' /><span class='abstand'>Note ".$i."</span>"
20.
  } else
21.
      echo "<input type='radio' name='Note'  value='".$i."'  id='note_".$i."' '  /><span class='abstand'>Note ".$i."</span>"
22.
23.
24.
  
25.
?> 
26.
<p><input type="submit" /></p> 
27.
</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
Bitte warten ..
Mitglied: EvilMoe
03.06.2011 um 11:30 Uhr
@Günni

Ich habe das direkt im Browser geschrieben. Dadurch sind mit die kleinen Fehler unterlaufen ;)
Aber du hast mich ja richtig verbessert ;)
Bitte warten ..
Mitglied: helmuthelmut2000
03.06.2011 um 19:19 Uhr
Hallo,

Danke für die Lösung.
Das hab ich jetzt so hinbekommen.

Gruß
Helmut
Bitte warten ..
Mitglied: helmuthelmut2000
15.09.2011 um 22:06 Uhr
Hallo,

Geht das auch mit einem select Feld?
Also wo in einem Scrollfeld mehrere Daten sind,
und beim auslesen einer mssql db sollte gleich die
richtige Zeile anstehen.

Danke.
Bitte warten ..
Mitglied: Guenni
17.09.2011 um 12:00 Uhr
@helmuthelmut2000,

Geht das auch mit einem select Feld?

Ja, auch das geht.

01.
<?php 
02.
/* 
03.
* z.B. Wert aus Formular 
04.
*/ 
05.
$str="e3"
06.
/* 
07.
* z.B. Ergebnis aus DB-Abfrage 
08.
*/ 
09.
$str_arr=array(0 => "e1", 1 => "e2", 2 => "e3", 3 => "e4"); 
10.
/* 
11.
* Ausswahlliste 
12.
*/ 
13.
echo "<select name='selList'>"
14.
foreach($str_arr as $in_arr){ 
15.
 if($in_arr == $str){ 
16.
  echo "<option value='$in_arr' selected>$in_arr</option>"
17.
 }else
18.
 			 echo "<option value='$in_arr'>$in_arr</option>"
19.
20.
21.
echo "</select>"
22.
?>
Gruß
Günni
Bitte warten ..
Mitglied: helmuthelmut2000
17.09.2011 um 22:53 Uhr
Hallo Günni,

Ich hab da noch ein Problem mit dem Wert aus der DB zu lesen.

Ich muß das doch so machen:

$str=' . $dsatz["ab"] . ';

Dann geht das bei mir immer auf e1, also das erste auswahl Feld.

Muß ich das anders machen?
Bitte warten ..
Mitglied: helmuthelmut2000
17.09.2011 um 23:03 Uhr
Hallo Günni,

Danke es geht.

so:

$str="" . $dsatz['ab'] . "";


Gruß
Helmut
Bitte warten ..
Mitglied: helmuthelmut2000
18.09.2011 um 10:55 Uhr
Hallo,

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.

Geht das?
Bitte warten ..
Mitglied: Guenni
21.09.2011 um 22:12 Uhr
@helmuthelmut2000,

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.

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.:

01.
<?php 
02.
/* 
03.
* Mit den Werten wird die Select-Box gefüllt. 
04.
*/ 
05.
$option_arr=array(1 => "Seite 1", 2 => "Seite 2", 3 => "Seite 3", 4 => "Seite 4", 5 => "Seite 5"); 
06.
/* 
07.
* Die Schlüssel(Indexe) in einem Array ablegen. 
08.
*/ 
09.
$key_arr=array_keys($option_arr); 
10.
/* 
11.
* Per Zufall ein Abfrageergebnis erzeugen. 
12.
*/ 
13.
$data_set=rand(1,5); 
14.
/* 
15.
* Select-Box "bauen"
16.
*/ 
17.
echo "<select>"
18.
foreach($key_arr as $key){ 
19.
/* 
20.
* Bei Übereinstimmung von Abfrageergebnis mit einem Index gibst du den entsprechenden 
21.
* Eintrag aus "$option_arr" als "selected" aus. 
22.
*/ 
23.
 if($key == $data_set){ 
24.
  echo "<option value='$key' selected>$option_arr[$key]</option>"
25.
/* 
26.
* Alle anderen Einträge werden ohne "selected" ausgegeben. 
27.
*/ 
28.
 }else
29.
 			 echo "<option value='$key'>$option_arr[$key]</option>"
30.
31.
32.
echo "</select>"
33.
?>

Gruß
Günni
Bitte warten ..
Mitglied: helmuthelmut2000
22.09.2011 um 22:12 Uhr
Hallo Günni,

Und wo gibt man da den Wert aus der DB an?

$str="" . $dsatz['ab'] . "";

Gruß
Helmut
Bitte warten ..
Mitglied: Guenni
24.09.2011 um 16:26 Uhr
@helmuthelmut2000,

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
Bitte warten ..
Mitglied: helmuthelmut2000
20.10.2011 um 14:06 Uhr
Hallo Günni,

Wie schaut den das script aus wenn ich keine select Feld und Radio Button habe.
Also nur ein Normaler Text.

In der DB Steht z.B. 2 da sollte dann 2.Seite erscheinen oder bei der 3 sollte 3.Seite kommen.

Gruß
Helmut
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Daten nach dem auslesen per Powershell moven - kopieren - löschen (1)

Frage von Luckyyluck zum Thema Batch & Shell ...

Webbrowser
gelöst Daten in entfernte Mysql DB schreiben (3)

Frage von nullacht15 zum Thema Webbrowser ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...