Attribut als Hidden Field

21.12.2010 11:17
#1
reiseeck
Joomshopping forum user no avatar
Name: Frank
21.12.2010
Posts: 10
Quote
Attribut als Hidden Field

Hallo,

Ich habe ein Problem mit dem Lesen eines Attributes welches ich über ein Hiddenfield sende. Da ich ein eigenes Script zur Erstellung von Stempeln eingebunden habe, soll im Warenkorb statt des originalen Produktbildes das Bild des generierten Stempels zu sehen sein. Dazu muss ich aber die ID des Stempels, welche ich erzeugt habe, an den Warenkorb übergeben werden.

Nun habe ich innerhalb des Formulars in den Product Templates folgendes hinzugefügt: <input type="hidden" name="jshop_attr_id[0]" value="<?php echo $UID;?>">

Am Kopf vom Template Card lese ich nun das Ergebnis zu testzwecken aus.
$countprod = count($this->products);
foreach($this->products as $key_id=>$prod){
foreach($prod['attributes_value'] as $attr){$count++;
$produktattribute = $produktattribute.$count.$attr->value."|";}
echo $produktattribute;}

Dort erhalte ich als Ausgabe auch angezeigt, das es ein Attribut 1 gibt.Allerdings ist er ohne Eintrag. In Controllers unter card.php habe ich jshop_attr_id auch erfolgreich ausgelesen. Nur wird er nicht an das Card Template weitergegeben.

Woran könnte es liegen? Wie schaffe ich es den Attributwert, welcher zuvor in keiner DB hinterlegt ist, bis zum Template card.php weiter zu geben?

(PS: Vielleicht habe ich mich etwas umständlich ausgedrückt - aber das Problem ist etwas kompliziert zu beschreiben)

LG

Frank

 
21.12.2010 11:36
#2
reiseeck
Joomshopping forum user no avatar
Name: Frank
21.12.2010
Posts: 10
Quote
Aw: Attribut als Hidden Field

Vermutlich findet es irgendwo hier statt. Irgendwie muss der Wert ja hier hin kommen: $prod['attributes_value'] - wo findet das statt? Ich blicke nicht mehr durch ;-(

function add(){

$jshopConfig = &JSFactory::getConfig();
if ($jshopConfig->user_as_catalog) return 0;
$product_id = JRequest::getInt('product_id');
$category_id = JRequest::getInt('category_id');
$quantity = JRequest::getInt('quantity',1);
$to = JRequest::getVar('to',"cart");
if ($to!="cart" && $to!="wishlist") $to = "cart";

$jshop_attr_id = JRequest::getVar('jshop_attr_id');
if (!is_array($jshop_attr_id)) $jshop_attr_id = array();


echo $jshop_attr_id[0]; /// Das zeigt mir mein Hidden Attribut
exit; /// Beenden damit man es auch sieht


foreach($jshop_attr_id as $k=>$v) $jshop_attr_id[intval($k)] = intval($v);

$cart = &JModel::getInstance('cart', 'jshop');
$cart->load($to);


if (!$cart->add($product_id, $quantity, $jshop_attr_id))

 
21.12.2010 13:18
#3
reiseeck
Joomshopping forum user no avatar
Name: Frank
21.12.2010
Posts: 10
Quote
Aw: Attribut als Hidden Field

Diese Daten enthält die Attribute List:
1|2Schwarz|3Schwarz|
1|2Schwarz|3Schwarz|4|5Schwarz|6Schwarz|
1|2Schwarz|3Schwarz|4|5Schwarz|6Schwarz|7|8Schwarz|9Schwarz|
1|2Schwarz|3Schwarz|4|5Schwarz|6Schwarz|7|8Schwarz|9Schwarz|

1,4,7... sollen den Wert enthalten welcher aus dem Hiddenattribut übergeben werden.

 
22.12.2010 07:55
#4
reiseeck
Joomshopping forum user no avatar
Name: Frank
21.12.2010
Posts: 10
Quote
Aw: Attribut als Hidden Field

Hallo,

leider gabs bisher noch keine Infos zu meinem Problem. Offensichtlich scheint es nicht so einfach zu sein. Habe aber nun in den tiefen der Scripte gegraben und bin auf die card.php in /models gestoßen.

In der dortigen Funktion function add($product_id, $quantity, $attr_id)

wird das Array für das Product mit den Daten aus der DB mit dem festgelegten Attributen gefüllt.

$temp_product['attributes_value'][$i]->attr = $attr->getName($key);
$temp_product['attributes_value'][$i++]->value = $attr_v-$getName($value);

Mein Wert aus dem Hiddenfeld wurde auch an die Funktion übergeben. $attr_id[0] zeigt meinen Wert an. Nun müsste dieser lediglich zu dem Array hinzugefügt werden. Was ich auch Probiere - es geht nicht...

Vielleicht könnte jemand von den Programmentwicklern eine kurze Hilfe geben.

Vielen Dank

 
22.12.2010 08:13
#5
reiseeck
Joomshopping forum user no avatar
Name: Frank
21.12.2010
Posts: 10
Quote
Aw: Attribut als Hidden Field

ERLEDIGT!!!!

Ich sitze wirklich zu lange vor dem Bildschirm - aber es ist erledigt. Wert wird wie gewünscht übergeben... War schon drauf und dran die Sache vom Entwikcler gegen Endgeld erledigen zu lassen ;-)

LÖSUNG IN models/card.php - Funktion add
$temp_product['attributes_value'][$i]->attr = $attr_id[0];
$temp_product['attributes_value'][$i++]->value = $attr_id[0];

hinzugefügt - und schon habe ich die Daten;.)

Thread darf als erledigt geschlossen werden. Vielen dank...

 
Copyrights MAXXmarketing GmbH. All Rights Reserved