Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Per Checkbox ausgewählte Datensätze weiterverarbeiten [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Per Checkbox ausgewählte Datensätze weiterverarbeiten


 
thommy2006
25-04-2006, 20:36 
 
Hallo zusammen,

wieder ein Problem:

Ich habe mit PHP5 aus einer MySQL-Datenbank eine Umsatzliste erstellt:


<? while ($daten = mysql_fetch_array($result)) { ?>
<tr align="right">
<td><b><? echo '<a href=kd_details.php?id='.$daten[id].' title=Bearbeiten>'.$daten[id].'</a>'; ?></b></td>
<td>
<?
$teilen=explode("-",$daten[datum]);
$datum=$teilen[2].".".$teilen[1].".".$teilen[0];
echo $datum;
?>

</td>
<td><? echo $daten[artnr]; ?></td>
<td><? echo $daten[kunden_id]; ?></td>
<td><? echo $daten[liefer_id]; ?></td>
<td><? echo $daten[anzahl]; ?></td>
<td><? echo sprintf("%01.2f",$daten[einzel]); ?></td>
<td><? echo sprintf("%01.2f",$daten[betrag]); ?></td>
<td><? echo $daten[rechn]; ?></td>
<td><b><? echo '<a href=ums_aendern.php?edit='.$daten[id].' title=Bearbeiten>B</a>'; ?></b> </td>
<td><b><? echo '<a href=ums_loeschen.php?clear='.$daten[id].' title=L&Ouml;SCHEN style="color: red">L</a>'; ?></b> </td>
<td><input type="Checkbox" name="erstellen" value="v"> </td>
</tr>
<? } ?>


Nun soll der User Umsätze mit der Checkbox auswählen um für diese eine Rechnung zu erstellen. Dafür müssen die ID's der Umsätze an den nächsten Schritt (ein aus den Umsatzdaten generiertes Dokument) übergeben werden.

Für einen Umsatz (eine ID) währe das per Link kein Problem ... aber wie mache ich das mit z.B. drei per Checkbox ausgewählten Umsätzen?

Könnt Ihr mir folgen oder habe ich mich zu blöd ausgedrückt?

Kann ich das mit einem Array lösen? - Wenn ja, wie bekomme ich die ausgewählten ID's in das Array?

Bin für jeden Vorschlag dankbar!

 
Slava
25-04-2006, 21:02 
 
du machst mehrere checkbox mit gleichem namen z.b.s name="box[]" und setzt verschiedene value(deine ids).
wenn name eckige klamer hat erkennt dein phpscript, dass es ein array ist und du kannst dann mit foreach($_POST['box'] as $box) alle angeklickte IDs rausholen.

 
wahsaga
25-04-2006, 21:16 
 
Du verpackst die Checkboxen in eine wundervolle Erfindung namens Formular, und lässt dieses dann abschicken :-)

Und im Folgescript wertest du das dann aus - die Werte, die du übergeben möchtest, kannst du als Values der Checkboxen angeben.

Beachte aber, dass nur die Werte der Checkboxen übertragen werden, die auch angekreuzt waren.

Du kannst die Checkboxen auch z.b. mit name="name[]" benennen, dann bekommst du durch die eckigen Klammern ein Array mit allen angekreutzen Checkboxen.

Wenn die Struktur der Daten noch unklar ist, hilft die Ausgabe von $_GET oder $_POST mittels print_r() weiter.

 
thommy2006
25-04-2006, 22:56 
 
Eure Tipps scheinen schon in die richtige Richtung zu gehen ... Ich habe jetzt die Checkbox wie folgt eingegeben:

<input type="Checkbox" name="erstellen[]" value="">

Beim Zieldokument möchte ich die übergebenen Daten abholen:


$erstellen=$_POST['erstellen'];

echo $erstellen;



Ausgegeben bekomme ich nur das Wort "Array". Wie bekomme ich nun die selektierten "ID's" in das Array?

 
boris-schneider
25-04-2006, 23:09 
 
Original geschrieben von thommy2006
Ausgegeben bekomme ich nur das Wort "Array". Wie bekomme ich nun die selektierten "ID's" in das Array? so kann das doch auch nichts werden :D


Slava und wahsaga haben es doch schon angedeutet: zum testen mal print_r(); und zum ausgeben der arrays foreach benutzen.


Sers
Der Boris

 
Slava
26-04-2006, 03:26 
 
<<Ausgegeben bekomme ich nur das Wort "Array". Wie bekomme ich nun die selektierten "ID's" in das Array?>>
außergewöhnlich!
du hast doch dein array, jetzt muss du in mit schleife ausgeben.

 
st@tic
26-04-2006, 08:17 
 
Original geschrieben von thommy2006

$erstellen=$_POST['erstellen'];

echo $erstellen;


[/B]

im grunde wurde schon alles gesagt von daher hab ich nur ne kleinigkeit

$erstellen=$_POST['erstellen']
ist eigentlich nicht nötig kannst auch überall das $_POST-Element angeben. Eigentlich ne unnötige Variable.

 
thommy2006
26-04-2006, 17:03 
 
Vielen Dank Euch allen!

Eine Zeit lang hatte mein Hirn ne Ladehemmung , aber dank Eurer Hilfe hab ich das Problem jetzt gelöst!:)

Gruß

thommy2006

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:26 Uhr.