Hallo, falls das Thema hier schon behandelt worden ist tut es mir leid, ich hab nach mehrstündingem Suchen leider nichts gefunden, weder hier noch gegoogelt..
Das problem:
Ich habe ein Formular das nach vorheriger abfrage sagen wir n im Aussehen identische, aber über einen Index von einander unterscheidbare Eingabeblöcke generiert..(Schleife,natürlich). Es kann jetzt sein dass der User merkt, dass einer der Blöcke nicht gebraucht wird(und auch nicht in die DB soll).
Bisher hab ich dazu ein Eingabefeld und 'nen Button. Das Eingabefeld will wissen, welcher Block weg muss, der Button heißt (furchtbar kreativ...) oneLess.
Auf diese Weise funkt alles perfekt, der Eintrag wird rausgelöscht, die bisher eingetragen Daten bleiben beim neuladen erhalten, also alles as dannach kam rückt einfach einen Block vor..
Jetzt wird aber von mir gefordert,zu jedem Block einen Lösch-button zu tun, der da gleiche macht, nur ohne dass der user 'ne Zahl eingeben muss...
wie kann ich mit n verschieden Buttons das so machen, dass beim neuladen $_POST[oneLess] gesetzt ist und $_POST[defect] die Zahlt beinhaltet welche den zu löschenden Block identifiziert
Ich wäre sehr dankbar wenn mir da wer helfen kann, ich bin langsam am verzweifeln..
vll hilft ja wem der code,.. leider noch sehr unorthodox fürchte ich, da das mein erstes php projekt ist..
grüße, simon
Ich muss dazu natürlich sagen, dass die Blöcke diejenigen sind die zu Eingabe Chips nötig sind.. (ab kommentar: schleife mit eingabe der chips). Ich hoffe die Antwort lässt nicht so lange auf sich warten weil die Frage so saublöd formuliert ist.. falls doch müsste ich auch erst wissen was unverständlich ist, damit ich es besser erklären kann.
Das problem:
Ich habe ein Formular das nach vorheriger abfrage sagen wir n im Aussehen identische, aber über einen Index von einander unterscheidbare Eingabeblöcke generiert..(Schleife,natürlich). Es kann jetzt sein dass der User merkt, dass einer der Blöcke nicht gebraucht wird(und auch nicht in die DB soll).
Bisher hab ich dazu ein Eingabefeld und 'nen Button. Das Eingabefeld will wissen, welcher Block weg muss, der Button heißt (furchtbar kreativ...) oneLess.
Auf diese Weise funkt alles perfekt, der Eintrag wird rausgelöscht, die bisher eingetragen Daten bleiben beim neuladen erhalten, also alles as dannach kam rückt einfach einen Block vor..
Jetzt wird aber von mir gefordert,zu jedem Block einen Lösch-button zu tun, der da gleiche macht, nur ohne dass der user 'ne Zahl eingeben muss...
wie kann ich mit n verschieden Buttons das so machen, dass beim neuladen $_POST[oneLess] gesetzt ist und $_POST[defect] die Zahlt beinhaltet welche den zu löschenden Block identifiziert
Ich wäre sehr dankbar wenn mir da wer helfen kann, ich bin langsam am verzweifeln..
vll hilft ja wem der code,.. leider noch sehr unorthodox fürchte ich, da das mein erstes php projekt ist..
grüße, simon
PHP:
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Charge adden</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>-=| Add a Batch |=-</h1>
<p>
<?php
include("../includes/zugriff2.php");
include("../includes/field_checks.php");
echo "<link rel='stylesheet' type='text/css' href='../includes/formate.css'>";
$uRights = getUserRights();
if((isset($_POST['count'])|| isset($_POST['oneMore'])|| isset($_POST['oneLess'])|| isset($_POST['submit']))&& checkRight($uRights,$assamblingRights)){
$chipsExist = true;
//--> ab hier wird in die Datenbank eingetragen bis...
if(isset($_POST['submit'])&& checkRight($uRights,$assamblingRights)){
$anz=$_POST['numchip'];
///////////////Block um Chips in DB anzulegen
for($k=1; $k<=$anz; $k++) {
if (!empty( $_POST["ChipID$k"])&& isAChipNumber($_POST["chipnr$k"])){
echo "<p><font color='red'>-$k-te ID da!</font></p>";
$chipid=$_POST["ChipID$k"];
$cnum=$_POST["chipnr$k"];
$bar=$_POST["barID$k"];
$sol=$_POST["solID$k"];
$customer=$_POST["customerID$k"];
$comment=$_POST["comment$k"];
$sql="INSERT INTO chips VALUES ('$chipid','$customer','$sol','$bar','$_POST[batchID]','$cnum','$comment') ";
$result = mysql_query($sql);
if($result){
echo "<p>Yeah Yeah Yeah (hat geklappt)</p>";
}else{
echo "<p>-$k : ( ... </p>";
$chipsExist = false;
}
}else{
if(empty( $_POST["ChipID$k"]))echo "<p><font color='red'>-$k-te ID fehlt!</font></p>";
if(!isAChipNumber($_POST["chipnr$k"]))echo "<p><font color='red'>-$k-te Chipnummer fehlt oder ist inkorrekt!</font></p>";
$chipsExist = false;
}
}
//Block um Charge anzulegen
if(isset($_POST['submit'])&& checkRight($uRights,$assamblingRights) && $chipsExist){
if (!empty( $_POST['batchID']) && !empty( $_POST['typID'])&& isADate($_POST['date'])&& $chipsExist){
$sql="INSERT INTO batches VALUES
('$_POST[batchID]',$_POST[typID],'$_POST[empID]','$_POST[heatID]','$_POST[date]','$_POST[comment]')";
$result = mysql_query($sql);
if($result){
echo "<p>Charge erfolgreich angelegt</p>";
}else{
echo "<p> : ( charge </p>";
}
// <-- ...hier.
// ab hier Fehlermeldungen falls etwas mit den einträgen in den Feldern nicht stimmt.. -->
}else{
if(empty( $_POST['batchID'])){echo "<p><font color='red'>- Chargen ID?</font></p>";}
if(empty( $_POST['typID'])){echo "<p><font color='red'>- typ ID ?</font></p>";}
if(!isADate($_POST['date'])){echo "<p><font color='red'>-Falsches Datumsformat ?</font></p>";}
}
// <-- ...bis hier oder..
}else {
// etwas mit den RECHTEN nicht stimmt -->
if (!checkRight($uRights,$assamblingRights)){
echo "<p><font color='red'>- Du hast keine Rechte für diese Aktion(nicht eingeloggt)! </font></p>";
}
}
// <--
}
$propId = getNextID('idbatch','batches');
$date = date("Y.m.d");
$GLOBALS['anz']=$_POST['chipnum'];
if(isset($_POST['submit'])){ $anz=$_POST['numchip'];}
if(isset($_POST['oneMore'])){$GLOBALS['anz']=$_POST['numchip']+1;}
if(isset($_POST['oneLess'])){$GLOBALS['anz']=$_POST['numchip']-1;}
if(isset($_POST['defect'])){echo"gesetzt: $_POST[defect]";}
echo "<form action='$Server[PHP_SELF]' method='POST'>";
echo " <table>";
echo " <tr><td>batchID:</td><td><input type='text' name='batchID' value='$propId'></td></tr>";
echo " <tr><td>Datum:</td><td><input type='text' name='date' value='$date'></td></tr>";
echo "<tr><td>Anzahl der Chips in der Charge:</td><td><input type='text' name='numchip' value='$anz' readonly='readonly'></td></tr>";
echo "<tr><td>Typ:</td><td><select name='typID'>";
//block fuer TypCodes
$sql = "Select * from typeCodes";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idtypeCodes]";
if($row[idtypeCodes]==$_POST[typID]){ echo" selected";}
echo">$row[description] </option>";
}
echo"</select></td></tr>";
echo "<tr><td>Zusammengestellt von:</td><td><select name='empID'>";
//block fuer Angestellter:
$sql = "Select * from employees";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idemployee]";
if($row[idemployee]==$_POST[empID]){ echo" selected";}
echo">$row[short] - $row[name] </option>";
}
echo"</select></td></tr>";
echo "<tr><td>Wärmesenke:</td><td><select name='heatID'>";
//block fuer Wärmesenken:
$sql = "Select * from heatsinks";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idheatsink]";
if($row[idheatsink]==$_POST[heatID]){ echo" selected";}
echo">$row[identifier] - $row[name] </option>";
}
echo"</select></td></tr>";
echo "<tr><td>Kommentar:</td><td><textarea cols='64' rows='2' name='comment' >$_POST[comment]</textarea></td></tr>";
echo " </table><br>";
echo " <table>";
////////// Schleife mit Eingabe für Chips:
echo "<tr><td colspan= '4'><h2>Chips:</h2></td></tr>";
if(isset($_POST['submit'])){ $anz=$_POST['numchip'];}
for($i=1; $i<=$anz; $i++) {
/*
* variablen übernehmen falls eintrag nicht funktioniert hat.
* die if-Abfrage sorgt dafür dass die richtigen Daten übernommen werden falls
* ein Defekter chip aus der liste genommen wird.
* und Nein das geht nicht mit i++ an der stelle $_POST['defect']
*/
if(isset($_POST['oneLess'])){
if($i<$_POST['defect']){
$cid=$_POST["ChipID$i"];
$cnr=$_POST["chipnr$i"];
$cmt=$_POST["comment$i"];
$ssq=$_POST["solID$i"];
$scu=$_POST["customerID$i"];
$sbr=$_POST["barID$i"];
}else{
$j=$i+1;
$cid=$_POST["ChipID$j"];
$cnr=$_POST["chipnr$j"];
$cmt=$_POST["comment$j"];
$ssq=$_POST["solID$j"];
$scu=$_POST["customerID$j"];
$sbr=$_POST["barID$j"];
}
}else{
$cid=$_POST["ChipID$i"];
if(isset($_POST["chipnr$i"]) ){$cnr=$_POST["chipnr$i"];}else{if($i==1){$cnr=$i;}else{$cnr=$cnr+1;}}
$cmt=$_POST["comment$i"];
$ssq=$_POST["solID$i"];
$scu=$_POST["customerID$i"];
$sbr=$_POST["barID$i"];
}
$propId = getNextID('idchip','chips');
if(isset($cid)){$propId=$cid;}else{$propId = $propId+$i;}
echo "<tr><td width='120'>ChipID$i</td><td width='148'><input type='text' name='ChipID$i' value='$propId'></td>";
echo "<td width='180'>Chipnummer in Charge:</td><td width='500'><input type='text' name='chipnr$i' value='$cnr'></td></tr>";
echo "<tr><td>Barren:</td><td><select name='barID$i'>";
//block fuer Barren
$sql = "Select * from bars where avaiable=true";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idbar]";
if($row[idbar]==$sbr){ echo" selected";}
echo">$row[idbar] </option>";
}
echo"</select></td>";
echo "<td>Lötqualität:</td><td><select name='solID$i'>";
//block fuer Loetqualitaet
$sql = "Select * from solquality";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idsoldering_quality] ";
if($row[idsoldering_quality]==$ssq){ echo" selected";}
echo">$row[text] </option>";
}
echo"</select></td></tr>";
echo " <tr><td>Kunde:</td><td><select name='customerID$i'>";
$sql = "Select * from customers";
$tempQuery = mysql_query($sql);
while($row = mysql_fetch_assoc($tempQuery)){
echo"<option value=$row[idcustomer]";
if($row[idcustomer]==$scu){ echo" selected";}
echo">$row[company] </option>";
}
// $oneMore ="Gib mir noch einen!";
// $oneLess= "Defekt!";
echo " </select></td></tr>";
echo "<tr><td>Kommentar:</td><td colspan = '2'><textarea cols='50' rows='2' name='comment$i' >$cmt</textarea></td><td></td></tr>";
echo "<tr><td>---------------------------------</td><td colspan = '3'>-------------------------------------------------------------------------------------------------</td></tr>";
echo"</td></tr>";
}
$oneMore ="Gib mir noch einen!";
$oneLess= "Defekt!";
echo " <tr><td><input type='submit' value='Eintragen!' name='submit'></td><td><input type='submit' value= '$oneMore' name='oneMore'></td></tr>";
echo " <tr><td</td><td><p>Chip # <input type='text' name='defect'> ist <input type='submit' value= '$oneLess' name='oneLess'></td></tr>";
echo " </table>";
echo "</form>";
// <-- bis hier
}else {
if (!checkRight($uRights,$assamblingRights)){
echo "<p><font color='red'>- Du hast keine Rechte für diese Aktion(nicht eingeloggt)! </font></p>";
}
}
// Block um Anzahl der Chips festzulegen
echo "<form action='$Server[PHP_SELF]' method='POST'>";
echo " <table>";
echo " <tr><td>Wieviele Chips sind in der Charge? :</td><td><input type='text' name='chipnum'></td></tr>";
//echo "<tr><td><a href='$link'>Weiter</a><tr><td>";
echo " <tr><td><input type='submit' value='anzeigen' name='count'></td></tr>";
echo " </table>";
echo "</form>";
mysql_close($conn);
?>
</p>
</body>
</html>
Ich muss dazu natürlich sagen, dass die Blöcke diejenigen sind die zu Eingabe Chips nötig sind.. (ab kommentar: schleife mit eingabe der chips). Ich hoffe die Antwort lässt nicht so lange auf sich warten weil die Frage so saublöd formuliert ist.. falls doch müsste ich auch erst wissen was unverständlich ist, damit ich es besser erklären kann.
Zuletzt bearbeitet: