在if-else+javascript条件下,PHP变量不会被触发



我使用Wordpress,我把代码放在函数中,代码:

add_filter( 'woocommerce_before_add_to_cart_form', 'spoiler', 15 ); 
function spoiler() {
$regprice = 1000;
$saleprice = 2000;
?>
<script type="text/javascript">
function kalkulyator(){
var rezultat2 = '<?php echo htmlspecialchars ($saleprice); ?>';

if (document.getElementById('option1').checked)
rezultat2 -= parseFloat(document.getElementById('option1').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option2').checked)
rezultat2 -= parseFloat(document.getElementById('option2').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option3').checked)
rezultat2 -= parseFloat(document.getElementById('option3').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option4').checked)
rezultat2 -= parseFloat(document.getElementById('option4').value);
document.getElementById('rezultat2').innerHTML = rezultat2; 
}

</script>
<?php
if (...) {
echo '<form onsubmit="return false;">';
echo '<input id="price1" type="hidden" value="'. $saleprice . '" oninput="kalkulyator()">';
echo '<label><input type="checkbox" id="option1" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option2" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option3" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option4" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<div style="text-align: center; font-weight: bold; margin-top: 20px;">You Price:</div>';
echo '<output id="rezultat2"> ' . $saleprice . '</output> ₽ <span style="color: black; font-weight: normal; margin-left: 5px;"><del>'. $regprice .'</del></span></div>';
echo '</form>'; 
}
}

当我只使用一个条件时,代码就起作用了。但是,当我使用elseif并规定另一个条件(相同的形式,只有更改(时,第一个if条件有效,而所有后续的else if都不起作用。由于某种原因,变量$saleprice和不插入$regprice,而是使用零。

可能是什么问题?

对于JavaScript,代码看起来像

<script type="text/javascript">
function kalkulyator(){
var rezultat2 = parseInt('<?php echo htmlspecialchars ($saleprice); ?>');

if (document.getElementById('option1').checked)
rezultat2 -= parseFloat(document.getElementById('option1').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option2').checked)
rezultat2 -= parseFloat(document.getElementById('option2').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option3').checked)
rezultat2 -= parseFloat(document.getElementById('option3').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option4').checked)
rezultat2 -= parseFloat(document.getElementById('option4').value);
document.getElementById('rezultat2').innerHTML = rezultat2; 
}

</script>

使用此

<?php 
add_filter( 'woocommerce_before_add_to_cart_form', 'spoiler', 15 ); 
function spoiler() {
$regprice = 1000;
$saleprice = 2000;
?>
<script type="text/javascript">
function kalkulyator(){
var rezultat2 = parseInt('<?php echo htmlspecialchars ($saleprice); ?>');

if (document.getElementById('option1').checked)
rezultat2 -= parseFloat(document.getElementById('option1').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option2').checked)
rezultat2 -= parseFloat(document.getElementById('option2').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option3').checked)
rezultat2 -= parseFloat(document.getElementById('option3').value);
document.getElementById('rezultat2').innerHTML = rezultat2;
if (document.getElementById('option4').checked)
rezultat2 -= parseFloat(document.getElementById('option4').value);
document.getElementById('rezultat2').innerHTML = rezultat2; 
}

</script>
<?php
if (...) {
echo '<form onsubmit="return false;">';
echo '<input id="price1" type="hidden" value="'. $saleprice . '" oninput="kalkulyator()">';
echo '<label><input type="checkbox" id="option1" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option2" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option3" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<label><input type="checkbox" id="option4" value="'. round ($regprice * 0.05). '" onclick="kalkulyator()"/></label>';
echo '<div style="text-align: center; font-weight: bold; margin-top: 20px;">You Price:</div>';
echo '<output id="rezultat2"> ' . $saleprice . '</output> ₽ <span style="color: black; font-weight: normal; margin-left: 5px;"><del>'. $regprice .'</del></span></div>';
echo '</form>'; 
}
}

并将其放入您的代码中

最新更新