Voila mon script
<script type="text/javascript">
<!--
function departments_onchange()
{
dept = xoopsGetElementById('departments');
var wl = new xhelpweblib(fieldHandler);
wl.customfieldsbydept(dept.value);n";
if($isStaff){
$javascript .= "var w = new xhelpweblib(staffHandler);
w.staffbydept(dept.value);n";
}
$javascript .= "}
var staffHandler = {
staffbydept: function(result){";
if($isStaff){
if (isset($_COOKIE['xhelp_logMode']) && $_COOKIE['xhelp_logMode'] == 2 && $xhelp_staff->checkRoleRights(_XHELP_SEC_TICKET_OWNERSHIP, $dept_id)) {
$javascript .= "var sel = gE('owner');";
$javascript .= "xhelpFillStaffSelect(sel, result);n";
}
}
$javascript .= "}
}
var fieldHandler = {
customfieldsbydept: function(result){
var tbl = gE('tbl_custom');n";
if ($isStaff && isset($_COOKIE['xhelp_logMode']) && $_COOKIE['xhelp_logMode'] == 2) {
$javascript.="var beforeele = gE('privResponse');n";
} else {
$javascript.="var beforeele = gE('position_custom');n";
}
$javascript.="tbody = tbl.tBodies[0];n";
$javascript .="xhelpFillCustomFlds(tbody, result, beforeele);
window.setTimeout('ajoute_onchange();', 200);
}
}
var tarifs=$j_tarifs;
function customs_onchange()
{
var HRock = 0;
var HSalsa = 0;
var HStage = 0;
for (var i=1; i<10; i++)
{
var f = document.getElementById('Rock_'+i);
if (f != null)
if (f.selectedIndex > 0)
HRock += parseInt(f.options[f.selectedIndex].value);
}
for (var i=1; i<10; i++)
{
var f = document.getElementById('Salsa_'+i);
if (f != null)
if (f.selectedIndex > 0)
HSalsa += parseInt(f.options[f.selectedIndex].value);
}
for (var i=1; i<10; i++)
{
var f = document.getElementById('Stage_'+i);
if (f != null)
if (f.selectedIndex > 0)
HStage = parseFloat(f.options[f.selectedIndex].value);
}
var reduc = 0;
for (var i=1; i<10; i++)
{
var els = document.getElementsByName('Reduc_'+i);
for (j=0; j < els.length; j++)
if (! els[j].value.match(/.*[%].*/) && els[j].checked)
reduc += parseFloat(els[j].value); // Transformer en entier
}
var reducp = 0;
for (var i=1; i<10; i++)
{
var els = document.getElementsByName('Reduc_'+i);
for (j=0; j < els.length; j++)
if (els[j].value.match(/.*[%].*/) && els[j].checked)
reducp += parseFloat(els[j].value.replace('%','')); // Transformer en entier
}
var heures = document.getElementById('heures');
if (heures)
heures.value = 0;
var pvp = document.getElementById('pvp');
if (pvp)
pvp.value = 0.00;
if (HRock != 0 || HSalsa != 0)
{
var heures = document.getElementById('heures');
if (heures)
heures.value = 0 + HRock + HSalsa;
var depts = document.getElementById('departments');
var dept = depts.options[depts.selectedIndex].value;
var tarif = false;
for (i = 0; i < tarifs.length; i++)
if (tarifs[i].dept == dept)
tarif = tarifs[i];
if (tarif)
{
switch(heures.value)
{
case '1' :
pvp.value = tarif.tarif_1;
break;
case '2' :
pvp.value = tarif.tarif_2;
break;
case '3' :
pvp.value = tarif.tarif_3;
break;
default:
pvp.value = 'Hors tarif';
}
}
}
else
{
var pvp = document.getElementById('pvp');
if (pvp)
pvp.value = HStage;
}
if ((reduc > 0) && (pvp.value != 'Hors tarif') && (pvp.value > 0))
pvp.value -= reduc;
if ((reducp > 0) && (pvp.value != 'Hors tarif') && (pvp.value > 0))
pvp.value -= pvp.value - (pvp.value * ((100 - reducp)/100));
if (pvp.value < 0)
pvp.value = 0;
}
function ajoute_onchange()
{
for (var i=1; i<10; i++)
{
if (document.getElementById('Rock_'+i))
xhelpDOMAddEvent(xoopsGetElementById('Rock_'+i), 'change', customs_onchange, true);
}
for (var i=1; i<10; i++)
{
if (document.getElementById('Salsa_'+i))
xhelpDOMAddEvent(xoopsGetElementById('Salsa_'+i), 'change', customs_onchange, true);
}
for (var i=1; i<10; i++)
{
if (document.getElementById('Stage_'+i))
xhelpDOMAddEvent(xoopsGetElementById('Stage_'+i), 'change', customs_onchange, true);
}
for (var i=1; i<10; i++)
{
var els = document.getElementsByName('Reduc_'+i);
for (j=0; j < els.length; j++)
xhelpDOMAddEvent(xoopsGetElementById(els[j].id), 'click', customs_onchange, true);
}
}
function window_onload()
{
xhelpDOMAddEvent(xoopsGetElementById('departments'), 'change', departments_onchange, true);
}
window.setTimeout('window_onload()', 1500);
//-->
</script>";
Voila le template
<div class="comBleue" style="clear:both; margin-right:4px; ; margin-top:15px; float:left">
<input type="text" name="pvp" id="pvp" maxlength="4" size="1" value="<{$xhelp_ticket_pvp}>" class="comRed" disabled="disabled" /> Euros.
</div>
edit bendenice: mercit d'utilser les balises code pour plus de comprehension