Artikelanzahl als DropDown
Hallo Leutz,
für ein Projekt benötige ich in einem ISOTOPE-Shop die Möglichkeit die Artikelanzahl als DropDown darzusellen.
Als QuicknDirty-Lösung habe ich mir folgendes zusammengebaut:
Ich habe per php.MyAdmin händisch in die Tabelle tl_iso_products eine neue Spalte names drop_id angelegt und in meinem Template verwende ich folgenden Code:
Code:
<form action="<?php echo $this->action; ?>" id="<?php echo $this->formId; ?>" name="iso<?php echo rand(); ?>" method="post" enctype="<?php echo $this->enctype; ?>">
<div class="formbody">
<input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit; ?>">
<input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
<h2><?php echo $this->name; ?></h2>
<?php echo $this->images->generateMainImage('medium'); ?>
<?php if($this->hasOptions): ?>
<div class="options">
<?php foreach( $this->options as $arrOption ): echo $arrOption['html']; endforeach; ?>
</div>
<?php endif; ?>
<?php echo $this->images->generateGallery(); ?>
<?php if ($this->sku):
?>
<div class="sku"><?php echo $this->sku;?></div><?php endif; if ($this->description): ?>
<div class="description"><?php echo $this->description; ?></div><?php endif; ?>
<div class="price"><?php echo $this->price; ?></div>
<?php if($this->buttons): ?>
<div class="submit_container">
<?php if ($this->useQuantity): ?>
<div class="quantity_container">
if($this->drop_id == '2')
{
?>
<label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $this->quantityLabel; ?>:</label>
<select id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" onblur="if (this.value=='') { this.value='1'; }" onfocus="if (this.value=='1') { this.value=''; }">
<option value="250">250</option>
<option value="500">500</option>
<option value="750">750</option>
<option value="1000">1000</option>
<option value="1250">1250</option>
<option value="1500">1500</option>
<option value="1750">1750</option>
<option value="2000">2000</option>
<option value="2500">2500</option>
<option value="3000">3000</option>
<option value="3500">3500</option>
<option value="4000">4000</option>
<option value="4500">4500</option>
<option value="5000">5000</option>
<option value="5500">5500</option>
<option value="6000">6000</option>
<option value="6500">6500</option>
<option value="7000">7000</option>
<option value="7500">7500</option>
<option value="8000">8000</option>
<option value="8500">8500</option>
<option value="9000">9000</option>
<option value="9500">9500</option>
<option value="10000">10000</option>
</select>
<?php
}
else if($this->drop_id == 3)
{
?>
<label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $this->quantityLabel; ?>:</label>
<select id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" onblur="if (this.value=='') { this.value='1'; }" onfocus="if (this.value=='1') { this.value=''; }">
<option value="500">500</option>
<option value="750">750</option>
<option value="1000">1000</option>
<option value="1250">1250</option>
<option value="1500">1500</option>
<option value="1750">1750</option>
<option value="2000">2000</option>
<option value="2500">2500</option>
<option value="3000">3000</option>
<option value="3500">3500</option>
<option value="4000">4000</option>
<option value="4500">4500</option>
<option value="5000">5000</option>
<option value="5500">5500</option>
<option value="6000">6000</option>
<option value="6500">6500</option>
<option value="7000">7000</option>
<option value="7500">7500</option>
<option value="8000">8000</option>
<option value="8500">8500</option>
<option value="9000">9000</option>
<option value="9500">9500</option>
<option value="10000">10000</option>
</select>
<?php
}
else if($this->drop_id == 4)
{
?>
<label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $this->quantityLabel; ?>:</label>
<select id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" onblur="if (this.value=='') { this.value='1'; }" onfocus="if (this.value=='1') { this.value=''; }">
<option value="1000">1000</option>
<option value="1250">1250</option>
<option value="1500">1500</option>
<option value="1750">1750</option>
<option value="2000">2000</option>
<option value="2500">2500</option>
<option value="3000">3000</option>
<option value="3500">3500</option>
<option value="4000">4000</option>
<option value="4500">4500</option>
<option value="5000">5000</option>
<option value="5500">5500</option>
<option value="6000">6000</option>
<option value="6500">6500</option>
<option value="7000">7000</option>
<option value="7500">7500</option>
<option value="8000">8000</option>
<option value="8500">8500</option>
<option value="9000">9000</option>
<option value="9500">9500</option>
<option value="10000">10000</option>>
</select>
<?php
}
else {
?>
<label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $this->quantityLabel; ?>:</label> <input type="text" class="text" id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" value="<?php echo $this->quantity_requested; ?>" maxlength="10" onblur="if (this.value=='') { this.value='1'; }" onfocus="if (this.value=='1') { this.value=''; }">
<?php
}
?>
<?php endif; ?>
<?php foreach( $this->buttons as $name => $button ): ?>
<input type="submit" class="submit <?php echo $name; ?>" name="<?php echo $name; ?>" value="<?php echo $button['label']; ?>">
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</form>
Nur das funktionier leider nicht.Wo liegt mein Fehler?Es wird mir nun das normale Textfeld ausgegeben und nicht das DropDown!
Bin für jeden Tip dankbar
Basti
AW: Artikelanzahl als DropDown
In der Schopkonfiguration kannst du Attribute anlegen, die dann dem Produkt zuweisen und fertig.
Haben wir bei cupprint auch so gemacht, da wir feste Einheiten haben.
AW: Artikelanzahl als DropDown
Das wirst du nur sicher über einen Hook hinbekommen. Alle Lösungen per JS konnte man überlisten.
Hook habe ich aber nicht im Kopf, schau mal in die Klasse vom Warenkorb ob du da was findest.