Hallo, liebe Forengemeinde!
Ausgangssituation: Ich möchte Preisinformationen zu einem Artikel im Adminbereich anlegen. Meine Seite arbeitet mit dynamisch generierten Registerkarten (Tabs: z.B. Store DE, Store USA, Store GB). Zu jedem Store sind die Währung und der BruttoPreis zu hinterlegen. Der Tabcontent für alle Stores befindet sich in einem Formular. Wenn das Formular abgeschicht wird, werden die Preisdaten aller Stores abgeschickt und validiert (1 Submit-Button).
Problem 1: Die nachfolgend dargestellte Funktion createCurrenciesDD($name, $selVal) ist ein Dropdown, das Währungen dynamisch aus einem Array generiert und zur Auswahl anbietet. Diese Funktion funktioniert jedoch für meine Ausgangssituation nicht. Die ausgewählten und verschickten Werte sind in den Dropdownboxen nicht markiert. Die Dropdowns sollten denselben Namen haben, müßten jedoch über einen Index unterschieden werden. Wie muß ich die Funktion inkl. Aufruf anpassen?
In Smarty sieht die Geschicht dann so aus (Auszug):
Problem 2: Pro Store-Tab ein Formular inklusive Submit-Button
Wenn ich für jeden Store ein Formular mit jeweils einem Submit-Button kreiere, bleiben die jeweils eingetragenen Werte nach einem Tab-Switch erhalten. Wird jedoch ein Formular abgeschickt, sind die eingetragenen Werte für die übrigen Stores weg.
2a) Wie kann ich das verhindern?
2b) Welche Formularvariante ist für den User besser?

Herzlichen Dank im voraus!
print147
Ausgangssituation: Ich möchte Preisinformationen zu einem Artikel im Adminbereich anlegen. Meine Seite arbeitet mit dynamisch generierten Registerkarten (Tabs: z.B. Store DE, Store USA, Store GB). Zu jedem Store sind die Währung und der BruttoPreis zu hinterlegen. Der Tabcontent für alle Stores befindet sich in einem Formular. Wenn das Formular abgeschicht wird, werden die Preisdaten aller Stores abgeschickt und validiert (1 Submit-Button).
Problem 1: Die nachfolgend dargestellte Funktion createCurrenciesDD($name, $selVal) ist ein Dropdown, das Währungen dynamisch aus einem Array generiert und zur Auswahl anbietet. Diese Funktion funktioniert jedoch für meine Ausgangssituation nicht. Die ausgewählten und verschickten Werte sind in den Dropdownboxen nicht markiert. Die Dropdowns sollten denselben Namen haben, müßten jedoch über einen Index unterschieden werden. Wie muß ich die Funktion inkl. Aufruf anpassen?
PHP:
function createCurrenciesDD($name, $selVal)
{
$arrVal = array('1', '2', '3');
$arrText= array('EUR', 'USD', 'GP');
$dd = ("<select name=\"".$name."\" size=\"1\">\n");
$selected = '';
for($i=0; $i<sizeof($arrVal); $i++)
{
$dd .= ("<option value=\"".$arrVal[$i]."\" ");
if(empty($_POST[$name]) && $selVal == $arrVal[$i])
{
$selected = 'selected=\"selected\"';
$dd.= $selected;
}
if(isset($_POST[$name]) && $_POST[$name] == $arrVal[$i])
{
$selected = 'selected=\"selected\"';
$dd .= $selected;
}
$dd .= (">".$arrText[$i]);
$dd .= ("</option>\n\t");
}
$dd .= ("</select>\n");
return $dd;
}
$selVal = '0';
$currencyDD = createCurrenciesDD('curr', $selVal);
$smarty->assign('currencyDD', $currencyDD);
In Smarty sieht die Geschicht dann so aus (Auszug):
Code:
<div id="tabsContainer">
<ul>
{section name=co loop=$arrTabStores}
<li id="tabs{$smarty.section.co.index}">
<span>{$arrTabStores[co].store_name}</span>
</li>
{/section}
</ul>
</div> <!—Ende TabsContainer?
<div id="tabsContentContainer">
<form name="editForm" method="post" action="{$smarty.server.PHP_SELF}" accept-charset="utf-8" />
{foreach from=$arrTabStores key=idx name=foo item=item}
<div id="tabsContent{$idx}">
<table>
Artikel-ID: <input class="readonly" readonly type="text" name="art_id[]" size="3" maxlength="3" value="{if isset($smarty.post.art_id[$idx])} {$smarty.post.art_id[$idx]} {else} {if isset($getArtID)} {$getArtID} {/if} {/if}" />
Currency:{$currencyDD}
Preis brutto: <input class="controlR" type="text" name="price_gross[{$idx}]" size="8" maxlength="10" value="{if isset($smarty.post.price_gross[$idx])} {$smarty.post.price_gross[$idx]} {else} 0.00 {/if} " />
</table>
</div>
{/foreach}
<input type="submit" class="submit" name="save_article_price_edit" value=”Save" />
</form>
Problem 2: Pro Store-Tab ein Formular inklusive Submit-Button
Wenn ich für jeden Store ein Formular mit jeweils einem Submit-Button kreiere, bleiben die jeweils eingetragenen Werte nach einem Tab-Switch erhalten. Wird jedoch ein Formular abgeschickt, sind die eingetragenen Werte für die übrigen Stores weg.
2a) Wie kann ich das verhindern?
2b) Welche Formularvariante ist für den User besser?

Herzlichen Dank im voraus!
print147