2009-06-16 2 views
0

Ich arbeite an einem PHP-Skript, um eine vorhandene CSV-Datei (wir nennen dies die Vorlage) und öffnen Sie es auf einer Seite und befüllen bearbeitbare Textfelder mit es sind Daten zwischen 1 und 50 mal (Benutzer entscheidet wie viele), die einmal nach den Wünschen des Benutzers bearbeitet werden, können dann alle in einer einzigen kombinierten CSV-Datei getrennt von der Vorlage gespeichert werden.dynamisch die Anzahl der Formularinstanzen und speichern alle als CSV mit PHP

Ich habe einen Link zu einem Diagramm, wie ich brauche, um zu arbeiten. Ich kann eine CSV öffnen, ich kann bearbeiten und speichern Sie die CSV, aber ich weiß nicht, wie Sie die Anzahl der Klone die Benutzer dynamisch benötigen, und die Vorlage so oft rendern, dass wenn Benutzer fertig sind, alle Felder verbunden sind als Zeilen eines einzelnen csv und gespeichert in einer neuen Datei.

Diagram Link

Der Bereich rot markiert, ist der Bereich im mit Schwierigkeiten haben.

Die Vorlagen enthalten ca. 25 Felder, sodass jede Instanz der Vorlage (Klon) 25 bearbeitbare Felder enthält, die mit den ursprünglichen Daten gefüllt werden. Ich bin zuversichtlich, dass ich das selbst machen kann, aber ich muss in die richtige Richtung zeigen, wie man die Anzahl der Klone der ursprünglichen Vorlage dynamisch festlegt und dann diese Klone als Zeilen in einer einzelnen CSV-Datei kombiniert, sobald sie fertig sind.

Antwort

0

Sie können Ihre Felder als Felder nennen:

<input type='text' name='field1[]'> 
<input type='text' name='field2[]'> 
... 
<input type='text' name='field25[]'> 

Dann verfolgen, wie viele Felder, die Sie haben und wie viele Zeilen Sie haben:

<input type='hidden' name='rowcount' value='50'> 
<input type='hidden' name='fieldcount' value='25'> 

Dann in der Server-Seite, wird $_POST['field1'] ein Array sein, das Sie leicht manipulieren können:

$fields = $_POST['fieldcount']; 
$rows = $_POST['rowcount']; 

$csv = array(); 
for($y = 0; $y < $rows; $y++) { 
    $row = array(); 
    for($x = 0; $x < $count; $x++) { 
     $row[$x] = $_POST['field' . ++$x]; 
    } 
    $csv[] = $row; 
} 
// use fputcsv here. 

Das ist eine grobe Schätzung, aber Sie können ich nehmen t von dort ...

0

Ich könnte total falsch verstehen, was du versuchst zu tun, aber ich werde raten.

Nehmen Sie die Anzahl der Klone, die der Benutzer ausgewählt hat, über das bearbeitbare Formular. Verwenden Sie Arrays als Name des Formulars/der Felder

<?php foreach(range(1, NUMBER_OF_CLONES) as $clone_number): ?> 
<form name="form[<?= $clone_number ?>]"> 
<input type="text" name="form[<?= $clone_number ?>]['name']"> 
</form> 
<?php endif; ?> 

Das wird NUMBER_OF_CLONES Forms anzeigen.

Um alles in einer Datei Schleife über die $ _POST ['Form'] - Array, die NUMBER_OF_FORMS Elemente (Formulare) haben und erstellen Sie die CSV.

Wenn ich Ihren Punkt vollständig vermisse, tut es mir leid

Verwandte Themen