Falsche Menge [Null] wird auf einer bestimmten HTML-Seite angezeigt
-
29-09-2020 - |
Frage
Wir verwenden den folgenden Code zum Aktualisieren der Menge in der Datei file2.phtml:
<li class="fields">
<div class="customer-name">
<div class="field">
<div class="input-box">
<input type="text" name="qty" id="qty" value="<?php echo intval($mpAssignProductModel->getQty()) ?>" class="required-entry validate-zero-or-greater input-text"/>
</div>
</div>
</div>
</li>
Ich habe diesen Code in Datei 1 kopiert, jetzt auf der Seite „file1.phtml“. Er wird wie folgt angezeigt:
bedeutet, dass der korrekte Mengenwert [20] auf der Seite „file2.phtml“ angezeigt wird, aber auf der Seite „file1.phtml“ wird „0“ als Menge angezeigt
Vollständiger Code für Datei1.phtml, Datei2.phtml
Bearbeiten
Zum Debuggen habe ich diesen Code verwendet: <?php var_dump($id); ?>
, es wird angezeigt NULL
Lösung
Versuchen Sie, das zu verwenden $assinproducts
anstatt der $mpAssignProductModel
im Datei1.phtml.Sie sollten Ihre Eingabe mit qty nach der Bedingung hinzufügen:
<?php foreach($this->getCollection() as $assinproducts): ?>
Der vollständige Code sollte so aussehen:
<tbody>
<?php foreach ($this->getCollection() as $assinproducts): ?>
<?php $products = Mage::getModel('catalog/product')->load($assinproducts->getProductId()); ?>
<tr class="wk_row_view ">
<td>
<input type="text" name="qty" id="qty" value="<?php echo intval($assinproducts->getQty()) ?>" class="required-entry validate-zero-or-greater input-text"/>
</td>
....
Aber seien Sie vorsichtig, denn die Tabelle kann mehr als ein Element enthalten.Unten im Code sehen Sie die ursprüngliche Mengeneingabe (mit ID-Erhöhung im Namen) und ich empfehle Ihnen dringend, das ursprüngliche Eingabefeld zu verwenden:
<td>
<span class="label qty" id="valueqty_<?php echo $assinproducts->getId(); ?>">
<?php echo intval($assinproducts['qty']); ?>
</span>
<input type="text" id="qty_<?php echo $assinproducts->getId(); ?>"
onkeydown="validateNumbers(event)"
name="stock" value="<?php echo intval($assinproducts['qty']); ?>"
style="display:none;"/>
<span class="label wk_action" id="edit_link_<?php echo $assinproducts->getId(); ?>">
<img onclick="showField('<?php echo $assinproducts->getId(); ?>'); return false;"
src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
</span>
<p id="updatedqty_<?php echo $assinproducts->getId(); ?>"
style="display:none;color:red;">Updated</p><br/>
<button id="update_button_<?php echo $assinproducts->getId(); ?>"
class="button wk_mp_btn1"
onclick="updateField('<?php echo $assinproducts->getId(); ?>',<?php echo intval($assinproducts['qty']); ?>); return false;"
style="display:none">
<span>
<span style="font-size:12px;"><?php echo $helper->__('Update') ?></span>
</span>
</button>
<button id="reset_button_<?php echo $assinproducts->getId(); ?>"
type="reset" class="cancel"
onclick="hideReset('<?php echo $assinproducts->getId(); ?>'); return false;"
style="display:none"></button>
</td>
PS:Bitte sagen Sie mir, ob ich gemischte Dateien habe und ich werde die Antwort aktualisieren
Andere Tipps
Sie haben ein Lademodell mit der ID.
Ihr Code funktioniert also nicht
$mpAssignProductModel->getQty();
Ändern Sie es in:
$mpAssignProductModel->getData('qty');