CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
24.03.2009, 09:27:16
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
|
|
Checkbox-Auswahl in DB speichern
Hallo @ all, bin neu hier und hab schon gleich ein Problem.
Es wird eine Tabelle aus der Datenbank erzeugt. wo es das Feld erledigt gibt welches entweder 1 oder 0 haben kann.Es kennzeichnet eine Aufgabe, 1 steht für erledigt.
Die Tabelle wird aus einem Arry erzeugt und angezeigt, woraufhin der Benutzer die erledigt checkbox auswählen kann und diese soll dann wieder an die Datenbank übertragen werden.
Wie kann ich das Speichern in der DB realisieren??
hier der bisherige Quälcode:
PHP-Code:
<?php
$sel="select kunden.lfd_kd_nr, kunden.name, kunden.ort, kunden.filial_nr, kunden.land,
kunden.kunden_nr,p.lfd_ps_nr, p.datum, p.erledigt, a.aufgabe
from kunden
Join projektstufen p
on (kunden.lfd_kd_nr = p.lfd_kd_nr)
Join zustaendigkeiten z
on (p.lfd_zu_nr = z.lfd_zu_nr)
Join mitarbeiter m
on (z.ma_nr = m.ma_nr)
Join aufgaben a
on (z.lfd_af_nr = a.lfd_af_nr)
where m.benutzername = '$user'
and p.erledigt = 0
order by p.datum
";
$erfolg = mysql_query($sel, $db);
while($pr = mysql_fetch_array($erfolg))
{
// Das Array wird in eine html Tabelle ausgelesen
// Alternativ auch mit extract(§ma) möglich
for ($i = 0; $i< count($pr); $i++)
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST" name="form">
<tr>
<td><? echo $pr[6] ?></td>
<td><? echo $pr[7] ?></td>
<td><? echo $pr[2] ?></td>
<td><? echo $pr[5].' | '.$pr[1]?> </td>
<td><? echo $pr[9] ?></td>
<td align="center"><input type="checkbox" name="erledigt" value="<? echo $pr[8]?>"></td>
</tr>
<? } ?>
</table>
<p></p>
<table>
<tr>
<td class="button46"><div align="center">
<input type="submit" name="button" value="Save" style="width:100px"></div></td>
<td colspan="4"><div align="center">
<button type="button" class="normal" style="width:100px;height:25px;" onclick="pdf('oprojects.pdf');">PDF</button></td>
</tr>
</table>
<!--
*****************************
Speichern der erledigten Aufgaben in der DBK
*****************************
-->
<?
if ($button == "Save")
{
for ($i = 0; $i< count($pr); $i++)
{
if($pr[i] == 0)
//$eintrag = $_POST['erledigt'];
{
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '$lfd_ps_nr'";
}
$erfolg=mysql_query($nunerledigt, $db);
if($erfolg)
{
?>
<!--
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus successfully changed";
alert(Meldung);
</SCRIPT>
//-->
<?
}
else
{
?>
<!--
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus not changed";
alert(Meldung);
</SCRIPT>
//-->
<?
}
}
}
?>
</form>
</body>
</html>
Im moment hab ichs mit einem submitbutton versucht. klappt nicht.
Schonmal vielen Dank für die Hilfe.
mfg pole
|
24.03.2009, 11:54:48
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Checkbox-Auswahl in DB speichern
Hi,
willkommen im Forum!
Wie lange beschäftigst Du Dich schon mit PHP/MySQL? Deinem Code nach erst wenige Stunden.
- Bitte schalte die Fehlermeldungen ein und arbeite mit mysql_error().
- Trenne das Formular von der eigentlichen Verarbeitung des Formularinhaltes.
- Frage Submit mit dem richtigen Namen ab.
- ...
Beachte dabei auch die Tut's in den Verhaltensregeln im SelfPHP-Forum (Punkt D).
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
24.03.2009, 12:31:37
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
|
|
AW: Checkbox-Auswahl in DB speichern
ok vlt. hab ich falsch erklärt.
Den Code hab ich bisher selbst geschrieben. Es handelt sich um ein Firmenverwaltungsprogramm.
Dort werden die Aufgaben als erledigt gekennzeichnet.
Fehlermeldung:
PHP-Code:
Warning: extract() [function.extract]: First argument should be an array in C:Inetpubwwwrootopenprojects.php on line 41
Hier nochmal der ganze Quelltext:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>open projekts</title>
<script type="text/javascript">
<!--
function Weiter () {
if (document.Testform.Art[0].checked == true) {
window.location.href = "openprojects_done.php";
} else {
window.location.href = "openprojects.php";
}
}
-->
</script>
<link rel="stylesheet" type="text/css" href="layout.css" >
</head>
<body class ="body" onload="javascript:window.status='ppscs mainwindow'">
<?php
/*
************************************************************************
die login_db.php includen, damit eine Datenbankverbindung zustande kommt
************************************************************************
*/
include ("login_db.php");
$user=$_GET['user'];
$ueberg="select * from mitarbeiter where benutzername = '$user'";
$erfolg = mysql_query($ueberg, $db);
$ma = mysql_fetch_array($erfolg);
extract($ma);
?>
<table width="691" border="1">
<tr>
<td colspan="4" class="today"><? echo $name.', '.$vorname;?> has the following open projects: </td>
<!--
*****************************
Drop-Down Menü zur Auswahl der Mitarbeiter
*****************************
-->
<td bgcolor="#CCCCCC">
<select name="select_mit" class="normal" style="width:130px" onchange="document.forms[0].submit();">
<?php
//Auswahl an Mitarbeitern werden der DBK entnommen
$select_mit = "select name, vorname from mitarbeiter order by name";
$mi = mysql_query($select_mit, $db);
if ($mi)
{
?>
<option class="button44" value=""><? echo $name.', '.$vorname;?></option>
<?php $p=0;
while ($rau = mysql_fetch_row($mi))
{
?>
<option <? if ($p==1){ ?> class="grau"<? } ?> class="normal" value="<? echo $rau[0] ?>"><? echo $rau[0].", ".$rau[1] ?></option>
<?php $p++;
if($p>1){$p=0;}
}
}?>
</select>
</td>
</tr>
<form action="" name="Testform">
<tr>
<td width="99" class="today">Step nr.</td>
<td width="99" class="today">beginns at:</td>
<td width="99" class="today">location:</td>
<td width="257" class="today">customer:</td>
<td width="208" class="today">todo:</td>
<td width="130" class="today">Done:</td>
</tr>
<?php
$sel="select kunden.lfd_kd_nr, kunden.name, kunden.ort, kunden.filial_nr, kunden.land,
kunden.kunden_nr,p.lfd_ps_nr, p.datum, p.erledigt, a.aufgabe
from kunden
Join projektstufen p
on (kunden.lfd_kd_nr = p.lfd_kd_nr)
Join zustaendigkeiten z
on (p.lfd_zu_nr = z.lfd_zu_nr)
Join mitarbeiter m
on (z.ma_nr = m.ma_nr)
Join aufgaben a
on (z.lfd_af_nr = a.lfd_af_nr)
where m.benutzername = '$user'
and p.erledigt = 0
order by p.datum
";
$erfolg = mysql_query($sel, $db);
while($pr = mysql_fetch_array($erfolg))
{
// Das Array wird in eine html Tabelle ausgelesen
// Alternativ auch mit extract(§ma) möglich
for ($i = 0; $i< count($pr); $i++)
?>
<tr>
<td><? echo $pr[6] ?></td>
<td><? echo $pr[7] ?></td>
<td><? echo $pr[2] ?></td>
<td><? echo $pr[5].' | '.$pr[1]?> </td>
<td><? echo $pr[9] ?></td>
<td align="center"><input type="checkbox" name="Art" value="<? echo $pr[8]?>"></td>
</tr>
<? } ?>
</table>
<p></p>
<table>
<tr>
<td class="button46"><div align="center">
<input type="button" value="Starten" onclick="Weiter()" name="button" style="width:100px"></div></td>
<td colspan="4"><div align="center">
<button type="button" class="normal" style="width:100px;height:25px;" onclick="pdf('oprojects.pdf');">PDF</button></td>
</tr>
</table>
<!--
*****************************
Speichern der erledigten Aufgaben in der DBK
*****************************
-->
</form>
</body>
</html>
und die Datei die Speichern soll:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>open projekts done</title>
<link rel="stylesheet" type="text/css" href="layout.css" >
</head>
<body class ="body">
<?php
/*
************************************************************************
die login_db.php includen, damit eine Datenbankverbindung zustande kommt
************************************************************************
*/
include ("login_db.php");
$wert1=$_POST['Art'];
echo $wert1;
$wert2="Hallo";
?>
<SCRIPT type="text/javascript">
var Meldung = "<? echo $wert2 ?>";
alert(Meldung);
</SCRIPT>
<?php
if ($button == "Save")
{
for ($i = 0; $i < count($pr); $i++)
{
if($pr[i] == 0)
//$eintrag = $_POST['erledigt'];
{
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '$lfd_ps_nr'";
}
$erfolg=mysql_query($nunerledigt, $db);
if($erfolg)
{
?><!--
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus successfully changed";
alert(Meldung);
</SCRIPT>
//--><?
}
else
{
?><!--
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus not changed";
alert(Meldung);
</SCRIPT>
//--><?
}
}
}
?>
</body>
</html>
Habe jetzt mit js die Funktion reingesetzt das er nur bei angeklickten checkboxen in zur php geht die speichern soll. Soweit so gut . nur wie kann ich die einträge in die DB speichern?
|
24.03.2009, 14:44:54
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Checkbox-Auswahl in DB speichern
Die Fehlermeldung zeigt schon einmal, daß die für extract() kein Array übergibtst. Vermutlich weil die Abdrage selbst kein Ergebnis gebracht hat.
Das Drop-Down Menü zur Auswahl der Mitarbeiter sitzt nicht in einem Formular.
Bei deinem Formular fehlt die Art, wie du die Daten übergeben willst (POST/GET).
Die For-Schleife auf der ersten Seite hat keine Auswirkung auf das Script und kann ganz weggelassen werden.
PHP-Code:
for ($i = 0; $i< count($pr); $i++)
Die einzige Checkbox, die ich sehe ist 'Art'. Soll dieses die Checkbox sein, die die Aufgabe als erledigt kennzeichnen soll?
Wie vt1816 schon geschrieben hat, verweist dein Verarbeitungsscript auf den falschen Button. 'Save' existiert in keinem Formular.
Besser gesagt, hat die Variable '$button' keinen Wert, da sie nirgends erzeugt wird.
Die If-Anweisung kann demnach nie eintreffen.
Die Variable '$lfd_ps_nr' im UPDATE hat ebenfalls keinen Wert.
Ich hoffe ich habe nichts vergessen.
Geändert von urvater (24.03.2009 um 14:45:47 Uhr)
|
24.03.2009, 14:59:29
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Checkbox-Auswahl in DB speichern
Zitat:
Zitat von Mc Pole
ok vlt. hab ich falsch erklärt.
[...]
|
Was Du veranstalten möchtest, ist schon klar.
Zitat:
Zitat von Mc Pole
[...] . nur wie kann ich die einträge in die DB speichern?
|
Aber bringe doch erstmal die Basics in Ordnung (siehe Hinweise weiter oben), bevor Du Dir den Kopf zerbrichst, wie Du die Daten in Deine Datenbanktabelle bekommst.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
24.03.2009, 17:55:23
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
|
|
AW: Checkbox-Auswahl in DB speichern
OK. Habe den Quelltext mal bereinigt und soweit funktioniert es das der letzte generierte Eintrag auch in der Datenbank verändert wird.(anklicken der checkbox erledigt wird in DB übertragen)
Vorher werden allerdings per while schleife mehrere Einträge generiert, die ich dann wohl in ein Array packen und später auswerten muss
NUR WIE?
HIER DER bisherige Quelltext:(in der auswertung sind noch einige Testvariablen und meldungen, die später rausgenommen werden)
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>open projekts</title>
<script type="text/javascript">
<!--
function Weiter ()
{
if (document.Testform.Art[0].checked == true)
{
window.location.href = "openprojects_done.php";
} else
{
window.location.href = "openprojects.php";
}
}
-->
</script>
<link rel="stylesheet" type="text/css" href="layout.css" >
</head>
<body class ="body" onload="javascript:window.status='ppscs mainwindow'">
<?php
/*
************************************************************************
die login_db.php includen, damit eine Datenbankverbindung zustande kommt
************************************************************************
*/
include ("login_db.php");
$user=$_GET['user'];
$ueberg="select * from mitarbeiter where benutzername = '$user'";
$erfolg = mysql_query($ueberg, $db);
$ma = mysql_fetch_array($erfolg);
extract($ma);
?>
<table width="691" border="1">
<tr>
<td colspan="4" class="today"><? echo $name.', '.$vorname;?> has the following open projects: </td>
<!--
*****************************
Drop-Down Menü zur Auswahl der Mitarbeiter
*****************************
-->
<td bgcolor="#CCCCCC">
<select name="select_mit" class="normal" style="width:130px" onchange="document.forms[0].submit();">
<?php
//Auswahl an Mitarbeitern werden der DBK entnommen
$select_mit = "select name, vorname from mitarbeiter order by name";
$mi = mysql_query($select_mit, $db);
if ($mi)
{
?>
<option class="button44" value=""><? echo $name.', '.$vorname;?></option>
<?php $p=0;
while ($rau = mysql_fetch_row($mi))
{
?>
<option <? if ($p==1){ ?> class="grau"<? } ?> class="normal" value="<? echo $rau[0] ?>"><? echo $rau[0].", ".$rau[1] ?></option>
<?php $p++;
if($p>1){$p=0;}
}
}?>
</select>
</td>
</tr>
<form action="openprojects_done.php" name="done" method="POST">
<tr>
<td width="99" class="today">Step nr.</td>
<td width="99" class="today">beginns at:</td>
<td width="99" class="today">location:</td>
<td width="257" class="today">customer:</td>
<td width="208" class="today">todo:</td>
<td width="130" class="today">Done:</td>
</tr>
<?php
$sel="select kunden.lfd_kd_nr, kunden.name, kunden.ort, kunden.filial_nr, kunden.land,
kunden.kunden_nr,p.lfd_ps_nr, p.datum, p.erledigt, a.aufgabe
from kunden
Join projektstufen p
on (kunden.lfd_kd_nr = p.lfd_kd_nr)
Join zustaendigkeiten z
on (p.lfd_zu_nr = z.lfd_zu_nr)
Join mitarbeiter m
on (z.ma_nr = m.ma_nr)
Join aufgaben a
on (z.lfd_af_nr = a.lfd_af_nr)
where m.benutzername = '$user'
and p.erledigt = 0
order by p.datum
";
$erfolg = mysql_query($sel, $db);
while($ma = mysql_fetch_array($erfolg))
{
extract($ma);
?>
<tr>
<td><? echo $lfd_ps_nr ?></td>
<td><? echo $datum ?></td>
<td><? echo $ort ?></td>
<td><? echo $kunden_nr.' | '.$lfd_kd_nr?> </td>
<td><? echo $aufgabe ?></td>
<td align="center"><input type="checkbox" name="Art[]" ></td>
</tr>
<?
}
?>
</table>
<p></p>
<table>
<tr>
<td class="button46"><div align="center">
<!--<input type="button" value="Save" onclick="Weiter()" name="button" style="width:100px">--><input type="submit" value="Save" name="button" style="width:100px"> </div></td>
<td colspan="4"><div align="center">
<button type="button" class="normal" style="width:100px;height:25px;" onclick="pdf('oprojects.pdf');">PDF</button></td>
</tr>
</table>
<input type="hidden" name="psnr" value="<? echo $lfd_ps_nr?>" />
</form>
</body>
</html>
Und das speichern in der DB:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>open projekts done</title>
<link rel="stylesheet" type="text/css" href="layout.css" >
</head>
<body class ="body">
<?php
/*
************************************************************************
die login_db.php includen, damit eine Datenbankverbindung zustande kommt
************************************************************************
*/
include ("login_db.php");
$wert1=$_POST['Art'];
$lfd_ps_nr=$_POST['psnr'];
echo $wert1;
?>
<SCRIPT type="text/javascript">
var Meldung = "<? echo $wert1 ?>";
alert(Meldung);
</SCRIPT>
<?php
?>
<SCRIPT type="text/javascript">
var Meldung = "<? echo $lfd_psnr ?>";
alert(Meldung);
</SCRIPT>
<?php
/*
************************************************************************
Speichern der erledigten Aufgaben in der DBK
************************************************************************
*/ echo $lfd_ps_nr;
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '$lfd_ps_nr'";
$erfolg=mysql_query($nunerledigt, $db);
if($erfolg)
{
?>
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus successfully changed";
alert(Meldung);
</SCRIPT>
<script LANGUAGE="JavaScript">
opener.location.reload();
setTimeout("self.close();", 0);
</script>
<?
}
else
{
?>
<SCRIPT type="text/javascript">
var Meldung = "Projectstatus not changed";
alert(Meldung);
</SCRIPT>
<script LANGUAGE="JavaScript">
opener.location.reload();
setTimeout("self.close();", 0);
</script>
<?
}
mysql_close($db);
?>
</body>
</html>
Vielen Dank für die Antworten bisher!
|
24.03.2009, 21:03:48
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Checkbox-Auswahl in DB speichern
Ersteinmal hast du noch einen Schreibfehler drin.
PHP-Code:
//deine Variable heißt $lfd_ps_nr deshalb sollte sie auch so geschrieben werden <SCRIPT type="text/javascript"> var Meldung = "<? echo $lfd_ps_nr ?>"; alert(Meldung); </SCRIPT>
Das nur ein Datensatz geändert wird ist normal. Bevor du dein Script auf die DB los läßt solltest du dir auch einmal anzeigen lassen, was überhaupt übergeben wird. Willst du mehrere Beiträge gleichzeitig auf erledigt setzen können, muß psnr auch mehrfach vorhanden sein. Somit muß es als Array deklariert werden.
PHP-Code:
<input type="hidden" name="psnr[]" value="<? echo $lfd_ps_nr?>" /> //eine Möglichkeit die Daten zu verarbeiten wäre dann
$lfd_ps_nr = trim($_POST['psnr']); if(is_array($lfd_ps_nr)) { foreach ($lfd_ps_nr as $val) { $nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '".$val."'"; $erfolg=mysql_query($nunerledigt, $db);
if($erfolg) { echo 'jep<br>'; } else { echo 'bäh<br>'; } } }
Geändert von urvater (24.03.2009 um 21:04:42 Uhr)
|
25.03.2009, 10:35:37
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
|
|
AW: Checkbox-Auswahl in DB speichern
Hey! Ihr seid echt gut =) DANKE. Bin schon weit gekommen.
Zitat:
Zitat von urvater
PHP-Code:
<input type="hidden" name="psnr[]" value="<? echo $lfd_ps_nr?>" />
//eine Möglichkeit die Daten zu verarbeiten wäre dann
// Wenn ich trim anwende wird es nichtmehr als array angesehn und is_array ist false
//$lfd_ps_nr = trim($_POST['psnr']);
if(is_array($lfd_ps_nr)) {
foreach ($lfd_ps_nr as $val) {
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '".$val."'";
$erfolg=mysql_query($nunerledigt, $db);
}
|
Soweit klappts, aber wieder nur wird EIN Eintrag übergeben und gelöscht.
Die Test echos usw. bestätigen dies.
Bei der Erfassung des Arrays muss also noch was falsch sein:
PHP-Code:
$erfolg = mysql_query($sel, $db);
while($ma = mysql_fetch_array($erfolg))
{
extract($ma);
?>
<tr>
<td><? echo $lfd_ps_nr ?></td>
<td><? echo $datum ?></td>
<td><? echo $ort ?></td>
<td><? echo $kunden_nr.' | '.$name ?> </td>
<td><? echo $aufgabe ?></td>
<td align="center"><input type="checkbox" name="Art" value="<? echo $erledigt ?>" ></td>
</tr>
<?
}
?>
</table>
<p></p>
<table>
<tr>
<td class="button46"><div align="center">
<!--<input type="button" value="Save" onclick="Weiter()" name="button" style="width:100px">-->
<input type="submit" value="Save" name="button" style="width:100px"> </div></td>
<td colspan="4"><div align="center">
<button type="button" class="normal" style="width:100px;height:25px;" onclick="pdf('oprojects.pdf');">PDF</button></td>
</tr>
</table>
<input type="hidden" name="psnr[]" value="<? echo $lfd_ps_nr?>" />
<input type="hidden" name="erl[]" value="<? echo $erledigt ?>" />
</form>
</body>
</html>
Geändert von Mc Pole (25.03.2009 um 10:45:33 Uhr)
|
25.03.2009, 11:21:51
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Checkbox-Auswahl in DB speichern
So hab das ganze mal durch gespielt. Die Hiddenfelder kannst du dir sparen. Denkfehler von mir.
Die Checkbox muß wie folgt aufgebaut werden.
PHP-Code:
<?php
//Wenn ich nicht irre ist $lfd_ps_nr die ID bei der erledigt auf 1 gesetzt werden soll
<input type="checkbox" name="Art[]" value="'.$lfd_ps_nr.'">
?>
Die Auswertung muß dann wie folgt aufgebaut werden.
PHP-Code:
if(isset($_POST['save'])) {
$lfd_ps_nr = $_POST['Art']; //hast Recht mit trim()
if(is_array($lfd_ps_nr)) {
foreach($lfd_ps_nr as $val) {
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '".$val."'";
$erfolg=mysql_query($nunerledigt, $db);
if(isset($erfolg))
{
echo 'jep<br>';
} else {
echo 'bäh<br>';
}
}
}
}
Solltest du es vorher mal testen wollen, dann kannst du folgendes Script nutzen:
PHP-Code:
<?php
if(isset($_POST['save'])) {
echo '<pre>';
print_r($_POST);
echo '</pre>';
$lfd_ps_nr = $_POST['art'];
if(is_array($lfd_ps_nr)) {
foreach($lfd_ps_nr as $val) {
$sql = "UPDATE projektstufen SET erledigt = 1 WHERE lfd_ps_nr = '".$val."'";
echo $sql.'<br>';
}
}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
erledigt 1 <input type="checkbox" name="art[]" value="1"><br>
erledigt 2 <input type="checkbox" name="art[]" value="2"><br>
erledigt 3 <input type="checkbox" name="art[]" value="3"><br>
erledigt 4 <input type="checkbox" name="art[]" value="4"><br>
erledigt 5 <input type="checkbox" name="art[]" value="5"><br>
erledigt 6 <input type="checkbox" name="art[]" value="6"><br>
erledigt 7 <input type="checkbox" name="art[]" value="7"><br>
erledigt 8 <input type="checkbox" name="art[]" value="8"><br>
erledigt 9 <input type="checkbox" name="art[]" value="9"><br>
<input type="submit" name="save" value="Speichern">
</form>
In dem Testscript ist "art" klein geschrieben!
EDIT: Kurz zur Erklärung. Da Checkboxen nur übermittelt werden, wenn sie auch angehakt sind muß ihnen auch die ID als Wert mitgegeben werden, auf der das Update laufen soll. Hätte man das Script auf die per hidden übergebenen psnr laufen lassen, würde alle Einträge auf erledigt gesetzt werden, da ja alle Hiddenfelder übermittelt werden. Dieses sollte aber nicht Sinn der Checkboxen sein.
Hatte wohl gestern einen Knoten im Kopf.
Geändert von urvater (25.03.2009 um 11:28:01 Uhr)
|
25.03.2009, 13:39:37
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
|
|
AW: Checkbox-Auswahl in DB speichern
VIELEN DANK! ich habs jetzt hinbekommen.
eine Sache musste ich bei der Checkbox aber verändern und so paar Kleinigkeiten(submitbutton hatte falschen namen)
PHP-Code:
<input type="checkbox" name="Art[]" value="<? echo $lfd_ps_nr ?>">
der hat mir sonnst was falsches ins array geschrieben. ;)
Bin ich froh endlich weitermachen zu können.
Ich sags euch: Das schlimmste ist es an einem bereits bestehenden Programm was ändern zu müssen. -.-
mfg pole
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:16:39 Uhr.
|