SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.03.2009, 09:27:16
Mc Pole Mc Pole ist offline
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$icount($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
Mit Zitat antworten
  #2  
Alt 24.03.2009, 11:54:48
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #3  
Alt 24.03.2009, 12:31:37
Mc Pole Mc Pole ist offline
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:
Warningextract() [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$icount($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?
Mit Zitat antworten
  #4  
Alt 24.03.2009, 14:44:54
Benutzerbild von urvater
urvater urvater ist offline
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$icount($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)
Mit Zitat antworten
  #5  
Alt 24.03.2009, 14:59:29
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Checkbox-Auswahl in DB speichern

Zitat:
Zitat von Mc Pole Beitrag anzeigen
ok vlt. hab ich falsch erklärt.
[...]
Was Du veranstalten möchtest, ist schon klar.


Zitat:
Zitat von Mc Pole Beitrag anzeigen
[...] . 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!
Mit Zitat antworten
  #6  
Alt 24.03.2009, 17:55:23
Mc Pole Mc Pole ist offline
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!
Mit Zitat antworten
  #7  
Alt 24.03.2009, 21:03:48
Benutzerbild von urvater
urvater urvater ist offline
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)
Mit Zitat antworten
  #8  
Alt 25.03.2009, 10:35:37
Mc Pole Mc Pole ist offline
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 Beitrag anzeigen
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)
Mit Zitat antworten
  #9  
Alt 25.03.2009, 11:21:51
Benutzerbild von urvater
urvater urvater ist offline
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)
Mit Zitat antworten
  #10  
Alt 25.03.2009, 13:39:37
Mc Pole Mc Pole ist offline
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
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Checkboxen Wert speichern HaMartens PHP Grundlagen 3 05.09.2008 12:46:52
Session - Checkbox "Logindaten speichern" Goddchen PHP für Fortgeschrittene und Experten 5 15.03.2007 10:58:53
checkbox im formular gerhard HTML, CSS und JavaScript Help! 2 26.04.2004 08:53:20
Zuweisung textfeld zu checkbox! powerbulls PHP für Fortgeschrittene und Experten 2 20.03.2004 13:58:25
Checkbox Der Andy PHP für Fortgeschrittene und Experten 1 10.12.2002 11:22:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:16:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt