2 Stimmen

CakePHP: Neue Zeile für Tabelle nach Bedarf hinzufügen

Ich muss eine Quittung erstellen. Der Benutzer kann ein neues Produkt erstellen, das aus einer unterschiedlichen Anzahl von Zutaten besteht.

Ich verwende eine Tabelle, um die Eingaben zu gestalten, und in jeder Zeile befindet sich eine Auswahlliste der vorhandenen Zutaten, die mit dem folgenden Code erstellt wurde:

<?php echo $this->Form->input('Receipt.0.ingredient_id', array( 'label' => false,'div' => false, 'class' => ''));

was die folgende html-Datei erzeugt

<select id="Receipt0IngredientId" class="" name="data[Receipt][0][ingredient_id]">
<option value="1">Ingredient B</option>
<option value="3">Ingredient B</option>
<option value="4">Ingredient B</option>
</select>

und ein weiteres Feld zur Eingabe der benötigten Menge der gewählten Zutat.

<?php echo $this->Form->input('Receipt.0.amount', array( 'label' => false,'div' => false, 'class' => '')); ?>

die Sache ist die Arten von Zutaten variieren basierend auf das Produkt und derzeit bin ich mit jQuery, um neue Zeilen hinzuzufügen, wenn Benutzer neue Zeile Schaltfläche klicken, aber ich weiß nicht, wie man den Namen Wert jedes Feldes ändern den jQuery-Code:

$("#addNewLine").click(function() {
      $('#add_ingredient tbody>tr:last').clone(true).insertAfter('#add_ingredient tbody>tr:last');
      return false;
    });

Ich bin nicht sicher, ob dies der beste Weg, um dies zu implementieren. jede Hilfe oder Vorschlag wäre geschätzt werden, danke.

0voto

nnnnnn Punkte 142888

Ich benutze jQuery, um neue Zeilen hinzuzufügen, wenn der Benutzer auf die Schaltfläche "Neue Zeile hinzufügen" geklickt hat, aber ich weiß nicht, wie man den Namenswert jedes Feldes ändert

Wenn Sie ein Element klonen, können Sie es vor (oder nach) dem Einfügen ändern:

$('#add_ingredient tbody>tr:last').clone(true)
                                  .attr("name", "new name here")
                                  .insertAfter('#add_ingredient tbody>tr:last');

Wenn Sie etwas detailliertere Angaben machen, z. B. die HTML-Datei vor der Änderung und dann ein Beispiel dafür, wie die neue HTML-Datei aussehen soll, kann ich Ihnen genauere Ratschläge geben.

P.S. Meinen Sie "Quittungen" oder "Rezepte"?

0voto

Avinash Punkte 740

Versuchen Sie dies,

Berechnen Sie zunächst die Anzahl der Auswahlfelder in Ihrer Html-Datei mit Hilfe von,

var count = $('select').size();

Dann, Fügen Sie je nach Bedarf eine html-Auswahlbox hinzu,

$('body').append('<select id="Receipt'+count+'IngredientId" class="" name="data[Receipt]['+count+'][ingredient_id]">
<option value="1">Ingredient B</option>
<option value="3">Ingredient B</option>
<option value="4">Ingredient B</option>
</select>');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X