Hallo,
ich habe ein schräges Problem mit einem Formular. In diesem Formular sind mehrere Checkboxen für Stati. Es handelt sich um ein Editformular, so daß ich mir vorher die werte aus einer mysqldatenbank ziehe. Soweit sogut.
Hier mein Formularbereich mit einer Checkbox:
<div class="contact_form_text"><input type="checkbox" name="kunde" value="1" <? echo $_SESSION['pedit_status_kunde']; ?>><? echo _("Customer"); ?></div>
Die Sessionvariable wird beim 1. Laden des Formulares mit checked gefüllt oder eben nicht
//Kunde
$sqlstr3="select count(user_id) from user_xref_gruppen where user_id = '$id' and gruppen_id = '$cust_id'";
$res3=mysql_query($sqlstr3);
$row3 = mysql_fetch_array($res3);
if ($row3['count(user_id)']>"0")
{
$_SESSION['pedit_status_kunde']="checked";
}
else
{
$_SESSION['pedit_status_kunde']="";
}
Bis hierhin klappt alles noch. Bei einem Submit wird die Variable $kunde überprüft und dann der Inhalt der Sessionvariable( wird nicht verändert). Danach unterscheide ich, ob ich einen neuen Db-Eintrag setze, oder delete.
Ich habe folgendes Symptom:
1. Ein Insert klappt.
2. Ein Update des Formulares löscht den Wert aus der Datenbank, auch wenn ich die Checkbox nicht verändert habe und diese immer noch checked ist.
//Customers
if ($kunde == "1")
{
if( _SESSION['pedit_status_kunde']=="")
{
$sqlstr12="insert into user_xref_gruppen (user_id,
gruppen_id) values ('$id', '$cust_id')";
//echo $sqlstr2;
//exit(0);
$res12 = mysql_query($sqlstr12);
if (mysql_errno() <> 0)
{
echo mysql_errno().": ".mysql_error()."<BR>";
echo "<b>$sqlstr12</b><br>";
}
}
//Wenn value der Checkbox nicht 1...
}
else
{
if ($_SESSION['pedit_status_kunde']=="checked")
{
/*
$sqlstr13="delete from `user_xref_gruppen` where `user_id`='$id' AND `gruppen_id`='$cust_id'";
$res13 = mysql_query($sqlstr13);
//echo $sqlstr22;
//exit(0);
if (mysql_errno() <> 0)
{
echo mysql_errno().": ".mysql_error()."<BR>";
echo "<b>$sqlstr13</b><br>";
}
*/
}
}
Das schräge ist, mal funktioniert alles ganz normal und die Checkbox wird nicht gelöscht.
Bin echt überfragt. Vielleicht habe ich aber auch nur einen blöden Fehler gebaut.
Danke und Gruesse Gordon
ich habe ein schräges Problem mit einem Formular. In diesem Formular sind mehrere Checkboxen für Stati. Es handelt sich um ein Editformular, so daß ich mir vorher die werte aus einer mysqldatenbank ziehe. Soweit sogut.
Hier mein Formularbereich mit einer Checkbox:
<div class="contact_form_text"><input type="checkbox" name="kunde" value="1" <? echo $_SESSION['pedit_status_kunde']; ?>><? echo _("Customer"); ?></div>
Die Sessionvariable wird beim 1. Laden des Formulares mit checked gefüllt oder eben nicht
//Kunde
$sqlstr3="select count(user_id) from user_xref_gruppen where user_id = '$id' and gruppen_id = '$cust_id'";
$res3=mysql_query($sqlstr3);
$row3 = mysql_fetch_array($res3);
if ($row3['count(user_id)']>"0")
{
$_SESSION['pedit_status_kunde']="checked";
}
else
{
$_SESSION['pedit_status_kunde']="";
}
Bis hierhin klappt alles noch. Bei einem Submit wird die Variable $kunde überprüft und dann der Inhalt der Sessionvariable( wird nicht verändert). Danach unterscheide ich, ob ich einen neuen Db-Eintrag setze, oder delete.
Ich habe folgendes Symptom:
1. Ein Insert klappt.
2. Ein Update des Formulares löscht den Wert aus der Datenbank, auch wenn ich die Checkbox nicht verändert habe und diese immer noch checked ist.
//Customers
if ($kunde == "1")
{
if( _SESSION['pedit_status_kunde']=="")
{
$sqlstr12="insert into user_xref_gruppen (user_id,
gruppen_id) values ('$id', '$cust_id')";
//echo $sqlstr2;
//exit(0);
$res12 = mysql_query($sqlstr12);
if (mysql_errno() <> 0)
{
echo mysql_errno().": ".mysql_error()."<BR>";
echo "<b>$sqlstr12</b><br>";
}
}
//Wenn value der Checkbox nicht 1...
}
else
{
if ($_SESSION['pedit_status_kunde']=="checked")
{
/*
$sqlstr13="delete from `user_xref_gruppen` where `user_id`='$id' AND `gruppen_id`='$cust_id'";
$res13 = mysql_query($sqlstr13);
//echo $sqlstr22;
//exit(0);
if (mysql_errno() <> 0)
{
echo mysql_errno().": ".mysql_error()."<BR>";
echo "<b>$sqlstr13</b><br>";
}
*/
}
}
Das schräge ist, mal funktioniert alles ganz normal und die Checkbox wird nicht gelöscht.
Bin echt überfragt. Vielleicht habe ich aber auch nur einen blöden Fehler gebaut.
Danke und Gruesse Gordon
Kommentar