Met onderstaande code wordt een functie myFunction aangeroepen die een veld en een button toont of verbergt afhankelijk van de inhoud in een ander veld. Zodra de waarde van dit veld gewijzigd wordt, wordt de functie myFunction aangeroepen en op basis van de waarde die zich bevindt in het gewijzigde veld wordt een ander veld en een button getoond of niet. Tot zover lukt dit allemaal.
Momenteel wordt het veld en button dat al dan niet verbergt gaat worden bij het laden van de pagina automatisch getoond. Ook hier zou ik bij het laden het veld en button willen verbergen afhankelijk van de waarde die bij het laden reeds getoond wordt in het selectie veld.
Hiervoor heb ik een functie verberg gemaakt, maar krijg het niet voor elkaar om deze aan te roepen.
De vraagstelling om deze functie aan te roepen op basis van de waarde Gekleurd die al dan niet voorkomt is ook reeds gemaakt.
Kan iemand mij hiervoor informeren hoe ik dit verder dien aan te pakken.
Alvast bedankt.
<?php
defined('_JEXEC') or die();
$product = $viewData[0];
$params = $viewData[1];
$options = explode(',', $params->custom_qvariant);
$class='';
$selects= array();
$form = JRequest::getVar("jform", "", "post");
$product_id = JRequest::getInt ('virtuemart_product_id', 0);
$db = JFactory::getDbo();
$db->setQuery("Select * From #__virtuemart_products_nl_nl Where virtuemart_product_id = $product_id");
$rows = $db->loadObjectList();
foreach( $rows As $row ){
$product_naam = $row->product_name."\n";
}
echo '<input id="product_naam" value="'.$product_id.'-'.$product_naam.'"></input>';
if (!class_exists('CurrencyDisplay')) require(VMPATH_ADMIN . DS . 'helpers' . DS . 'currencydisplay.php');
$currency = CurrencyDisplay::getInstance();
foreach ($options as $valuesWithPrice) {
$valueWithPrice = explode('@', $valuesWithPrice);
if ( isset ($valueWithPrice[1]) ) {
$text = $valueWithPrice[0].' - [ '.$valueWithPrice[1].' € ]';
}
$text = str_replace(',', '@@@', $text); //temp replace the commas
$selects[] = array('value' =>$valueWithPrice[0], 'text' => $text );
}
$verpakking_id = 'customProductData['.$product->virtuemart_product_id.']['.$params->virtuemart_custom_id.']['.$params->virtuemart_customfield_id .'][custom_qvariant]';
$verpakking_par = '"'.$verpakking_id.'"';
$html = JHTML::_('select.genericlist', $selects, $verpakking_id,'class=customqvariant onchange=myFunction('.$verpakking_par.')','value','text',$selects[0],false,true);
$html = str_replace('@@@', ',', $html); //reinsert the commas
echo $html;
echo '<button id="kleuren" style="border: 1px solid #ccc; border-radius: 5px; background-color: #fff; width: 220px;" onclick="ToonKleurenWaaier('.$product_id.');return false;"><img src="/images/Algemeen/ncs.png" /></button>';
$keuze = substr($selects[0]['value'], 0, 8);
if ($keuze=="Gekleurd") {
// in dit geval mag het kleurveld en de button getoond worden
} else {
// indien de keuze niet begint met Gekleurd dan dient de functie myFunction aangeroepen te worden.
// zodat het veld kleur_veld en button_kleur status hidden moet worden, idem zoals gebeurt in de functie myFunction
// die aangeroepen wordt als de keuze gewijzigd wordt in onchange
// Hier dient de code aangevuld te worden om de functie aan te roepen
}
?>
<script>
function myFunction(parameter) {
var a = parameter;
var b = 'customProductData'+a.replace(/\D/g,'')+'custom_qvariant';
var p1 = a.indexOf("[");
var p2 = a.indexOf("]");
var c = a.substring(p1+1, p2);
var verpakking = document.getElementById(b).value;
var gekleurd = verpakking.substring(0,8);
var kleur_veld = document.getElementById(c);
var kleur_titel = document.getElementsByClassName ("product-fields-title-wrapper");
var button_kleur = document.getElementById ("kleuren");
if (gekleurd == "Gekleurd") {
kleur_veld.style.visibility = "visible";
button_kleur.style.visibility = "visible";
} else {
kleur_veld.style.visibility = "hidden";
button_kleur.style.visibility = "hidden";
}
}
function ToonKleurenWaaier(par_id) {
var veld_id = par_id;
var y = (screen.height/2)-(700/2);
var x = (screen.width/2)-(950/2);
myWindow = window.open ('/Kleurenkiezer.html', 'myWindow', 'left=' + x + ', top=' + y + ', height=700, width=950, toolbar=no, menubar=no, ');
}
function verberg(parameter) {
var a = parameter;
var p1 = a.indexOf("[");
var p2 = a.indexOf("]");
var c = a.substring(p1+1, p2);
var kleur_veld = document.getElementById(c);
var button_kleur = document.getElementById ("kleuren");
kleur_veld.style.visibility = "hidden";
button_kleur.style.visibility = "hidden";
}
</script>
1.417 views