• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

design pattern für $_REQUEST arrays[]

  • Ersteller Ersteller FoXMorayn
  • Erstellt am Erstellt am
F

FoXMorayn

Guest
Hallo,

ich stell mir in letzter zeit häufig die frage, wie ich am besten diese arrays unter kontrolle bekomme.

html
Code:
<input type="text" name="array[]">
<input type="checkbox" name="array2[]">

<input type="text" name="array[]">
<input type="checkbox" name="array2[]">

<input type="text" name="array[]">
<input type="checkbox" name="array2[]">

<input type="text" name="array[]">
<input type="checkbox" name="array2[]">

<input type="text" name="array[]">
<input type="checkbox" name="array2[]">


mysql datenbank
Code:
array|array2

die fragen dazu:

wie lösche ich einen datensatz am sinnvollsten?
wie behandel ich die checkbox? diese zustören den index vom array, da kein wert gesetzt wird, wenn sie nciht aktiv sind und array2 dann kürzer als array ist.
wie änder ich datensätze (hier auch unter berücksichtigung der checkbox) ?

meiner meinung nach bietet sich hier wunderbar ein editieren des DOM per jquery an. elemente löschen, hinzufügen usw. nur welches code design ist auf der seite des servers am schönsten?
 
Wenn die Daten im HTML auf den MySQL-Daten basieren, bau das Formular auf Basis der IDs aus der Tabelle auf. Verwende dazu vor allem das value-Attribut.

PHP:
<input type="text" name="array['<?php echo $row["id"]; ?>']" value="">
<input type="checkbox" name="array2['<?php echo $row["id"]; ?>']" value="1">

Beim Speichern musst Du in beiden Arrays dann nur nach den selben Bezeichnungen suchen. Also z.B. array['42'] und array2['42']. Verwende bei der checkbox das value-Attribut mit Wert 1 um unterscheiden zu können, ob es angehakt wurde oder nicht. Wenn ja, dann hat der Array-Eintrag den Wert 1.
 
Zuletzt bearbeitet:
ja das mit den ids ist wohl besser, danke.
wenn ich datensätze per jquery append() hinzufügen möchte bin ich wieder darauf angewiesen IDs unter zu bringen?
hab diese technik früher mal eingesetzt (ohne ids), aber bin schnell an die grenzen gestoßen. hab sie jetzt öfters wiedergesehen. z.b. in magento -> hinzufügen von individuellen produkten, hier wird auch per javascript eine id erzeugt. ( Log into Magento Admin Page )

hier ein bisschen beispielcode zum ausprobieren:
Code:
<form action="#" method="post">
    <input type="text" name="array[0]">
    <input type="checkbox" value="1" name="array2[0]">

    <input type="text" name="array[1]">
    <input type="checkbox" value="1" name="array2[1]">

    <input type="text" name="array[2]">
    <input type="checkbox" value="1" name="array2[2]">

    <input type="text" name="array[3]">
    <input type="checkbox" value="1" name="array2[3]">


    <!-- hinzugefügte datensätze --//>
    <input type="text" name="array[]">
    <input type="checkbox" value="1" name="array2[]">

    <input type="text" name="array[]">
     <input type="checkbox" value="1" name="array2[]">

    <input type="submit" value="senden">
</form>

<pre>
<?php
print_r($_REQUEST);
?>
</pre>
 
Wenn Du Datensätze ergänzen willst, dann verwende eine andere Variablenbezeichnung. Wenn Du mehrere Datensätze einfügen willst, mach daraus auch ein Array. Z.B. "newarray[]". Dann ist es strickt von den anderen getrennt und kann auch getrennt verarbeitet werden.
 

Neueste Beiträge

Zurück
Oben