WinFuture-Forum.de: Radio Und Submit Button - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Radio Und Submit Button


#1 _TheToxic_

  • Gruppe: Gäste

  geschrieben 02. Juni 2005 - 10:25

Hi!

Ich hab schon wieder ein kleines Problem.

Ich möchte gern einen Radio Button zum laufen bringen. Es soll ein Datensatz angewählt werden und dieser soll dann über einen Submit button gelöscht werden. Leider häng ich an diesem Punkt fest. Mir wurde gesagt dass ich das mit irgendeiner "laufenden Zahl" machen soll... hab aber keine Ahnung wie.

Hier mein Code :

Zitat

<?php
echo"<html><body>";

                   /* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost")
   or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("Software") or die("Auswahl der Datenbank fehlgeschlagen");

                   /* ausführen einer SQL Anfrage */
$query = "SELECT Hersteller,Programm,Version,Lkey,PC FROM lizenzen order by id";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());



                   /* Ausgabe der Ergebnisse in HTML */
echo "<br><br><br><font size=+1><b><div align=center>Liste der Lizensierten Programme</div></b></font>";
echo "<br><br><br>";
echo "<table width=75% cellspacing=2 cellpadding=2 border=3 bordercolordark=#000000 bordercolorlight=#cfcfcf bgcolor=#FFFAFA align=center>\n";
           echo "<th width=10% bgcolor=#ff4500>Löschen</th>
                 <th bgcolor=#FF4500>Herrsteller</th>
                 <th bgcolor=#FF4500>Programmname</th>
                 <th bgcolor=#FF4500>Version</th>
                 <th bgcolor=#FF4500>Lizenskey</th>
                 <th bgcolor=#FF4500>PC</th>";

     while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
           echo "\t<tr>\n";

                   /* Auswahlfeld */
           echo "<td align=center><input type=radio name=check value=check></input></form></td>";
                   /* Ende Auswahl */
           foreach ($line as $col_value) {
                   echo "\t\t<td>$col_value</td>\n";
           }
           echo "\t</tr>\n";

     }
     echo "</table>\n";
                   /* Submit-Button */
     echo "<br><br><form action=xdel.php method=post><div align=center> <input type=submit name=submit value='Löschen bestätigen'></div></form>";
                   /* Ende-Submit */


          if ($check == checked)
          if ($submit == 'submit')

          $d='delete from lizenzen where id=$omg ;';

          $result = mysql_query($d) or die ('Fehler 1');



                   /* Freigeben des Resultsets */
mysql_free_result($result);

                   /* schliessen der Verbindung */
mysql_close($link);
echo"</body></html>";
?>



Der Rote Bereich ist meine problemzone, denk ich mal ^^

Die Datenbank besitz eine ID, welche automatisch bei jedem Datensatz weiterzählt.

Ich hoffe ihr könnt mir irgendwie helfen...

THX schonma


MFG Toxic

Dieser Beitrag wurde von TheToxic bearbeitet: 02. Juni 2005 - 10:25

0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 02. Juni 2005 - 10:32

Zitat

<input type=radio name=check value=check>


Wenn alle Radio-Buttons den gleichen Wert haben macht es keinen Sinn. Ein unterschiedlicher Wert für "value" muss schon her.
0

#3 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 11:01

und wie richte ich das ein? Immer wenn ein neuer eintrag in der Datenbank erkannt wird, gibt er ihn aus. Also kann ich ja gar keinen festen wert bei "value" festlegen, da ich nie weiss wieviel einträge drin sind. Gibts da nicht ne art autofunktion? (bzw. irgendein script)
0

#4 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 02. Juni 2005 - 11:14

Du kannst die Einträge doch vorher zählen oder nicht? Ansonsten kannst du da auch einfach die ID der Zeile eintragen wenn du vor hast mit dem Radio-Button eine Zeile in der Tabelle auszuwählen.
0

#5 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 11:28

ich leg ja aber nicht die ID der Zeile fest... und die ID´s beziehen sich auf die Datenbank, nicht auf die Zeilen im script.

Wie lass ich etwas zählen?
0

#6 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 02. Juni 2005 - 11:49

Mit Hilfe von http://de2.php.net/m...ql-list-dbs.php oder ähnlichem kannst du Tabellen oder Datenbanken auflisten (und natürlich auch zählen).
0

#7 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 13:00

danke dir, hat aber nix genutzt...

muss so ne aufgabe hier im praktikum machen, obwohl ich davon null ahnung hab.
Hab irgendwie grad zu viel INPUT...... *zähneknirsch*
0

#8 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 02. Juni 2005 - 19:46

Hallo.

Zuerst mal möchte ich dir ans Herz legen, dass du diese Ausgabe lieber nicht in PHP mit einem echo; machst, sondern, dass du das in eine HTML-Datei schreibst und diese einschließt an der Stelle mit incldue();
Sonst geht die Übersicht verloren und es wird dir später auffallen, dass das anders rum viel besser und übersichtlicher ist.
So dann zweitens ist mir aufgefallen, dass du "falsches" HTML benutzt.
Wenn du einen Radio Button machst, dann bitte nicht so:
<input type=radio name=check value=check>

sondern so:
<input type="radio" name="check" value="check">

Das gibt aber in deinem Beispiel Probleme wegen dem echo; da es sonst zu Syntaxfehlern kommt. Deswegen lege dir meinen Ratschlag oben ans Herz. Oder du schreibst einfach vor jedes Anführungszeichen zwischen echo "..."; ein Backslash. Also so:
echo "<input type=\"radio\" name=\"check\" value=\"check\">";

Das wäre richtig. Noch einfacher. Benutze einfach keine Anführungszeichen für den Befehl echo; sondern benutze Hochkommas, also so:
echo '<input type="radio" name="check" value="check">';


Nun zum dritten Ratschlag. Gewöhne dir eine übersichtlichere Formatierung an. In deinem Code tut man sich schwer, etwas zu erkennen... Du musst die geschweiften Klammern anpassen und mehr mit Tabs und Abständen arbeiten. Auch noch ein kleiner Tipp: Für mysql_query(); schreibe die SQL-Befehle immer groß.
Also nicht:
 $d='delete from lizenzen where id=$omg;';

sondern...:
 $d = "DELETE FROM lizenzen WHERE id='$omg'";

Das sieht doch schon viel besser aus und du hast ein paar kleine Sachen noch falsch gemacht...

Jetzt zu deinem Problem :imao:
Du hast ja sicher eine ID für deine Datenbanksätze, die alles identifiziert und automatisch nach Zahlen sortiert?
Falls nicht, dann mache das schnell, das ist dringest empfehlenswert.
Dann gibst du die Daten einfach aus und bei dem radio-Bottun benutzt du dann z.B. name="check[$sql->id]"...
Falls du nicht weiter kommst, dann helfe ich dir gerne weiter.

Ich hoffe, dass dir dieser Beitrag geholfen hat!
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#9 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 20:25

also... problem wurde gemeinsam mit meinem chef gelöst ^^
trotzdem danke für das kontra....


jetzt hab ich noch ein prob. Ich bekomm den radio-button irgendwie nicht zum laufen...

Zitat

<?php
echo"<html><body>";

                  /* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost")
  or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("Software") or die("Auswahl der Datenbank fehlgeschlagen");

                  /* ausführen einer SQL Anfrage */
$query = "SELECT ID,Hersteller,Programm,Version,Lkey,PC FROM lizenzen order by id";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());



                  /* Ausgabe der Ergebnisse in HTML */
echo "<br><br><br><font size=+1><b><div align=center>Liste der lizensierten Programme</div></b></font>";
echo "<br><br><br>";
echo "<table width=75% cellspacing=2 cellpadding=2 border=3 bordercolordark=#000000 bordercolorlight=#cfcfcf bgcolor=#FFFAFA align=center>\n";
          echo "<th width=10% bgcolor=#ff4500>Löschen</th>
                <th bgcolor=#FF4500>Herrsteller</th>
                <th bgcolor=#FF4500>Programmname</th>
                <th bgcolor=#FF4500>Version</th>
                <th bgcolor=#FF4500>Lizenskey</th>
                <th bgcolor=#FF4500>PC</th>";

    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo"641651: $col_value[1]\n";
          echo "\t<tr>\n";

                  /* Auswahlfeld */
          echo "<td align=center><input                                                                      type=radio name=id value=></input></form></td>";

                  /* Ende Auswahl */
          foreach ($line as $col_value) {
                  echo "\t\t<td>$col_value</td>\n";
          }
          echo "\t</tr>\n";

    }
    echo "</table>\n";
                  /* Submit-Button */
    echo "<br><br><form action=xdel.php method=post><div align=center> <input type=submit              name=submit value='Löschen bestätigen'></div></form>";
                  /* Ende-Submit */

Irgendwo hier muss der Fehler sein...
          if ($check == checked)
          if ($submit == 'submit')

          $d='delete from lizenzen where id=$id ;';

          $result = mysql_query($d) or die ('Fehler 1');



                  /* Freigeben des Resultsets */
mysql_free_result($result);
                  /* schliessen der Verbindung */
mysql_close($link);
echo"</body></html>";
?>

0

#10 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 02. Juni 2005 - 20:31

Ganz einfach, du hast keine Klammern für die IF-Abfragen gemacht:

          if ($check == checked and $submit == 'submit')
          {
          $d='delete from lizenzen where id=$id;';

          $result = mysql_query($d) or die ('Fehler 1');
          }


So muss es gehen!
Ach ja und wilslt du meinen ersten Vorschlag des letzten Beitrages nicht zu Herzen nehmen :)
Und vergessse nicht deine HTML-Codes wie oben gesagt zu ändern, das geht ja gar nicht so :imao:

Dieser Beitrag wurde von Slayer bearbeitet: 02. Juni 2005 - 20:35

Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#11 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 20:40

ok, zur sache formatierung....

ich hatte ja alles übersichtlich für mich... wie gesagt... HATTE...
bis mein chef kam und alles irgendwie umgeschrieben hat...

das wegen der der IF-Anfrage muss ich teilweise morgen machen. Weil meine Daten dort sind... und ich hier kein Xampp hab was ich bedienen kann.....



(ICH KENN MICH MA WIEDER IN NIX AUS....)
0

#12 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 02. Juni 2005 - 20:45

Zitat

So dann zweitens ist mir aufgefallen, dass du "falsches" HTML benutzt.
Wenn du einen Radio Button machst, dann bitte nicht so:


Das ist aber nicht falsch, nur wenn es um XHTML geht.
0

#13 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 02. Juni 2005 - 20:45

Keine Ursache, probiere es einfach aus und berichte dann, ob alles geklappt hat.
Du musst eventuell andere Funktionen noch mit in die IF-Abfrage, so dass es passt, weiß ja nicht genau, was du da vor hast.
Und noch was... du brauchst nie doppelte Abfragen wie:
          if ($check == checked)
          if ($submit == 'submit')


Da geht einfach nur folgendes viel besser:
if ($check == "checked" and $submit == "submit')


Ja und achte mal auf die Anführungszeichen, sollte man auch so machen.
Komischerweise gibt das keinen Sinn, da "checked" un "submit" nichts aussagen.
Meinst du damit das Formular?
Dann solltest du die Vatiablen aber in die $_POST(); Variable schreiben...

Denke immer dran, dass nach einer Abfrage (z.B. if) bei PHP die Ergebnisse immer zwicshen geschwungengen klammern ( {...} ) sein müssen oder mache einfach am Ende
endif;


Bringe erstmal deinen Code in Ordnung und vor allem mache ihn übersichtlicher, dann wird das auch viel leichter!

Zitat (Floele: 02.06.2005, 21:45)

Das ist aber nicht falsch, nur wenn es um XHTML geht.
<{POST_SNAPBACK}>

Ja, das schon.
Nur ich denke, dass er es in seinem Fall nicht als XHTML anwenden will, sondern als standard HTML.
Daher sollte er es richtig formatieren, das wäre sonst nicht ganz richtig.

Aber Floele du kannst mich einfach überall verbessern :imao:

Dieser Beitrag wurde von Slayer bearbeitet: 02. Juni 2005 - 20:48

Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#14 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 02. Juni 2005 - 20:56

Zitat

Nur ich denke, dass er es in seinem Fall nicht als XHTML anwenden will, sondern als standard HTML.
Daher sollte er es richtig formatieren, das wäre sonst nicht ganz richtig.


Eben deswegen (weil er kein XHTML benutzen möchte) ist es auch ohne " " richtig. Empfehlenswert sind sie aber trotzdem.
0

#15 _TheToxic_

  • Gruppe: Gäste

geschrieben 02. Juni 2005 - 21:21

also eigentlich möchte ich:
- eine tabelle ausgeben, was auch funktioniert...
- eine datenreihe mit dem radio-button auswählen, was NOCH nicht funktioniert...
- mit dem submit-button diese auswahl bestätigen und den datensatz löschen...

Ich hab vertrauen in euch...
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0