christoff
Goto Top

PHP Formular mit einem dropdown und einer Checkbox und MySQL

PHP Formular mit einem dropdown und einer Checkbox & MySQL

Hallo Leute,

ich bin absoluter newbie auf PHP & HTML und soll für meinen Cheffe ein Formular generieren das wie folgt aufgebaut ist :

Oben eine Überschrift

dann ein Dropdownfeld (mit 2 Daten (Stadt, und Kennzeichen [Hamburg, HH])) (Eigentlich ist ein weiterer Datensatz vorhanden (aktiv, deaktiv (0/1))).
Darunter ist ein Feld, indem eine Checkbox enthalten ist, das mir nach Auswahl aus dem DropDown das Häkchen in der checkbox aktualisiert.

in dem Dropdown sollen alle Einträge, die aktiv sind (Feld : aktiv = 1) rot angezeigt werden, der Rest schwarz.

Nach dem Klick auf übernehmen, soll in der Tabelle der ausgewählte Eintrag aktualisiert werden (aktiv oder deaktiv) und unterhalb des Übernehmen Buttons nochmal angezeigt werden. Darunter sollen zwei Buttons sein nach oben und zurück zur Hauptseite.


Ich stehe echt vor einem Rätsel und weiss echt nicht wie ich das hinkriegen soll !!! Das nächste Problem ich soll das so schnell wie möglich auf die Reihe kriegen (am besten Gestern ???)

Also ich bin für jede Lösung dankbar und freue mich auf Nachrichten von Euch !!!


Gruß


Christoff

Content-Key: 44687

Url: https://administrator.de/contentid/44687

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: catmin
catmin 16.11.2006 um 22:48:35 Uhr
Goto Top
Folgender Inhalt ist gut gemeint:

1. Chef sagen, dass du mehr Zeit brauchst, oder das nicht kannst.
Hatte eine sehr (sehr) ähnliche Situation und hab anfangs nix gesagt und natürlich hat dann das Ergebnis nicht gepasst. Der Bursche hielt mich dann recht lange für inkompetent.
Besser gleich abklären und realistische Termine ansetzen.

2. Umgebung
Welche Datenbank/Speichermöglichkeit?

3. Was hast du schon?
HTML-Forumular designed?
Datenbank gebaut?
Skripts/Tests?

4. Fang klein an.
Die Sonderfälle wie rot/aktiv schenk dir mal.
Schritt für Schritt.
HTML-Forms (de.selfhtml.org)
Datenbank (MSSQL, mysql, Postgres?...)
DB-Zugriff/Abfragen
...

Ich werde dir versuchen zu helfen, kann dir aber leider nicht das Programm schreiben, sondern nur Details liefern.
klingt vielleicht hart, ist aber nicht böse gemeint.


LG catmin
Mitglied: christoff
christoff 16.11.2006 um 23:14:38 Uhr
Goto Top
Hallo Catmin,

ich habe so angefangen das Ding zu bauen :

(Achtung in dem Script vorher habe ich Städte angegeben... das gleiche brauche ich aber auch für Länder also wie hier... Das ist im Prinzip das gleiche.

Im unteren Teil sind diverse Echos um Probehalber die Daten zu sichten.

Ebenso hab ich auch die Farb-Formatierung hinbekommen.

Es fehlt theoretisch das absenden und der entsprechende Update Befehl...

Ich hoffe ich habe nen guten Anfang gemacht...

Danke erstmal für Deine Hilfe !!!

Christoff

Ab hier das Script :


<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01 TransitionalEN"
"http://www.w3.org/tr/REC-html4/strict.dtd">
<html>
<head>
<title>Länder-Aktivierung</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
.Stil5 {
color: #FF0000;
font-weight: bold;
}
.Stil6 {
color: #000000;
}
-->
</style>
</head>
<body onLoad="window.resizeTo(650, 600), immervorn()">
<?php
Zugangsdaten für MySQL

$user="root"; Username für den MySQL-Zugang
$password="";
Hier ist noch kein Passwort gesetzt
$host="localhost"; Name (IP-Adresse) des Rechners mit MySQL
$dbname="ppscs_V2";
Name der Datenbank
Verbindung aufbauen
$db = mysql_pconnect($host, $user, $password)
or die ("Verbindung fehlgeschlagen");

Standard
mysql_select_db($dbname, $db);


?>
<center><h1>Länder aktivieren / deaktivieren</h1></center>
<form action="laender_ks.php" method="post" target="_top">
<table width="500" border="0" align="center">
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td rowspan="5">&nbsp;</td>
<td><div align="right">Name : </div></td>
<td><label>
<select name="name">
<?
$mysql_select_land="SELECT * FROM land ORDER BY name";
$liste = mysql_query($mysql_select_land, $db);
if($liste)
{
while($land_row = mysql_fetch_array ($liste))
{
if ($land_row[2] == 1)
{
$format = Stil5;
$zustand = "ja";
}
else
{
$format = Stil6;
$zustand = "nein";
}
?>
<option value="" class= <? echo $format?> >

<? echo $land_row[1] ?>,
<? echo $land_row ?>
<? $land = $land_row;
$name = $land_row[1];
$aktiv = $land_row[2] ?>
</option>
<?
}
}
else
{
echo "Daten nicht gelesen";
}
?>
</select>
</label> </td>
<td rowspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><div align="center">Die bereits aktivierten L&auml;nder sind farblich gekennzeichnet ! </div></td>
</tr>
<tr>
<td><div align="right">Land aktivieren : </div></td>
<td><label>
<input type="checkbox" name="checkbox" value="1">
</label></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><label>
<div align="center">
<input type="submit" name="Submit" value="Übernehmen" style="width:100px">&nbsp;
<input name="abbrechen" type="button" value="abbrechen" style="width:100px">
</div>
</label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
</table>

<?
$land_row= $_POST["land_row_0"]; Länderkürzel
$land_row[1]= $_POST["land_row_1"];
LandesName
$land_row[2]= $_POST["land_row_2"]; // Aktiv Ja / Nein

$name = $land_row[1];
$land = $land_row;
$aktiv_db = $land_row[2];

?>

</form>
<?

if($result=mysql_query("SELECT * FROM land ORDER BY name"))
{
printf("<p>Anzahl gefundener Datensätze : %d</p>\n", mysql_num_rows($result));
printf("<p>Anzahl gefundener Datenspalten : %d</p>\n", mysql_num_fields($result));

while ($row = mysql_fetch_object($result))
{
if($row->land)
printf("<br />%s , %s, %s\n", htmlentities($row->land), htmlentities($row->name), htmlentities ($row->aktiv));
else
printf("<br />%s\n", htmlentities($row->land));
}
mysql_free_result($result);
}
else
{
printf("<p>Sorry, keine Verb. zur DB! %s</p>\n",mysql_error());
}


?>
</body>
</html>
Mitglied: catmin
catmin 17.11.2006 um 07:56:53 Uhr
Goto Top
Bist ja eh schon verdammt weit!

Brauchst du eigentlich noch Hilfe? bzw wobei?


Anmerkungen:

nicht vergessen die Datenbank-Verbindung zu schließen.

mit $tmp=mysql_fetch_array($result);
echo $tmp['land'];
kannst du auf Spaltendaten per Name zugreifen. Ist manchmal besser als fetch_row, falls sich an der DB-Struktur was ändert, die Namen aber gleich bleiben.
Mitglied: christoff
christoff 17.11.2006 um 09:09:47 Uhr
Goto Top
Hallo Catmin,

brauche noch folgende Funktionen :

übernahme der Daten (UPDATE) zur DB,

Anzeige der Daten in dem Formular nach dem "Submit"

Das fehlt und da komme ich absolut nicht weiter !!!

Wäre schön wenn Du mir da die richtigen schubser geben könntest !!!


Danke


Christoff
Mitglied: catmin
catmin 17.11.2006 um 09:34:18 Uhr
Goto Top
na klar
Klickst du auf den <input type="submit" ... > Knopf so werden die Daten an den Server zur gewünschten datei geschickt.
Wenn die Daten geposted werden (<form ... method="post">) bekommst du die einzelnen Formulardaten über (z.B.face-smile
$land=$_POST['land'];
'land' ist der bezeichner den du im <input> als name angibtst.

Das Update Statement geht ca. so

UPDATE {tabelle} SET {spaltenname1}='{wert1}', {spaltenname2}='{wert2}' WHERE {primärschlüssel}={id_der_zu_ändernden_zeile}

Die {...} durch deine Werte ersetzten.

Falls du noch Fragen hast: schieß los!

lg
catmin
Mitglied: christoff
christoff 17.11.2006 um 09:55:18 Uhr
Goto Top
Hallo Catmin,

ich habe folgendes Problem...

mein Select scheint nich zu funktionieren... kannst Du da mal drüberblicken :

$status = ('SELECT aktiv from land where land = "'.$aktives_land.'"');

Was mache ich falsch ???

Danke
Christoff...
Mitglied: catmin
catmin 17.11.2006 um 11:08:22 Uhr
Goto Top
mysql_query fehlt?

Tipp (ist aber kein fehler): Mach die äußeren Gänsefüßchen doppelt( " ) und die im SQL-Statement einfach( ' ).

$sql="SELECT aktiv from land where land='".$aktives_land."' ";
$result= mysql_query($sql);
while($tmp=mysql_fetch_array($result)){
...
}

Wenns noch immer nicht geht mach mal ein
echo $sql;
und schaus dir/mir mal an