可以在 JavaScript 中使用条件在 PHP 中使用条件进行选择和取消选择

Is possible to use conditions to select and deselect in JavaScript with conditions in PHP?

本文关键字:条件 选择 行选 取消 PHP JavaScript      更新时间:2023-09-26

我有一个选项列表(复选框)可供选择。此列表是动态形成的,如下面的代码所示。

if ($data_inteiro_01 <= $data_inteiro_02) {
    if ($parcela[$i] === 0) {
        $display = 'disabled';
    }
} else { //Cota Unica venceu
    if ($parcela[$i] === 0) {
        if ($situacao[$i] <> 'Paga')
            $flagCotaUnica = true;
    }
}   
if ($situacao[$i] <> 'Cancelada' && $flagCotaUnica == false) {
    echo ('<td bgcolor=' . $cor . '><input type="checkbox" onclick="submit.disabled = false;" name="check_list[]" value="' . $i . '" ' . $display . '></td>');
    if ($parcela[$i] === 0) {
        echo ('<td bgcolor=' . $cor . ' align="center">Cota Única</td>');
    } else {
        echo ('<td bgcolor=' . $cor . ' align="center">' . $parcela[$i] . '</td>');
    }
    echo ("<td bgcolor=$cor align='center'>$situacao[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$dataVenc[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$valorReal[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$valorCorrigido[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$valorPagoFormat[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$dataPagto[$i]</td>");
    echo ("<td bgcolor=$cor align='right'>$valorDdReal[$i]</td>");      
    echo ("<td bgcolor=$cor align='right'>$dias</td>");
    echo ("<td bgcolor=$cor align='right'>$multaDam[$i]</td>");
}

但是在 JavaScript 中使用此函数时,我的条件被忽略了:

if ($data_inteiro_01 <= $data_inteiro_02)

我想单击特定选项以禁用或取消选中其他选项。为此,我得到了以下代码JavaScript:

<script type="text/javascript">
(function valid_teste(){
    "use strict";
    var marcados = 0;
    var verificaMarcado = function() {
        var $checks = document.querySelectorAll('input[type="checkbox"]');
        if( marcados>=1 ) {
            loop($checks, function($element) {
                $element.disabled = $element.checked ? '' : 'disabled';
            });
        } else {
            loop($checks, function($element) {
                $element.disabled = '';
            });
        }
    };
    var loop = function($elements, cb) {
        var max = $elements.length;
        while(max--) {
            cb($elements[max]);
        }
    }
    var count = function($element) {
        return $element.checked ? marcados + 1 : marcados - 1;
    }
    window.onload = function(){
        var $checks = document.querySelectorAll('input[type="checkbox"]');
        loop($checks, function($element) {
            $element.onclick = function(){
                marcados = count(this);
                verificaMarcado();
            }
            if($element.checked) marcados = marcados + 1;
        });
        verificaMarcado();
    }
}());
</script>

按节调用:

<form id="frm_autonomo_iss" name="frm_autonomo_iss" action="gera_dam_iss.php" method="post" accept-charset=utf-8 onsubmit="return valid_teste();">
可以在

不忽略 PHP 中的条件的情况下做到这一点吗?

我想你的意思是你想将一些信息从PHP代码传递给浏览器,以便javascript代码可以利用它。

这可以通过多种方式实现,但最简单的方法(即使它不是最优雅的方式)是回显出包含要传递的数据的<script>..</script>。由于 javascript 变量的全局性质,它们将在验证脚本运行时可用。

例如,您可以在运行此代码之前执行此操作

if ($data_inteiro_01 <= $data_inteiro_02) {
    if ($parcela[$i] === 0) {
        $display = 'disabled';
    }

所以添加这个

// assuming that $data_inteiro_01/02 are numeric
echo '<script type="text/javascript">';
echo 'var data_inteiro_01 = ' . $data_inteiro_01 . ';';
echo 'var data_inteiro_02 = ' . $data_inteiro_02 . ';';
echo '</script>';
if ($data_inteiro_01 <= $data_inteiro_02) {
    if ($parcela[$i] === 0) {
        $display = 'disabled';
    }

现在在你现有的javascript中,你可以使用js变量data_inteiro_01 and data_inteiro_02

这可能不是在您的脚本中执行此操作的最合适位置,但我没有太多要继续的地方。哦,顺便说一下,脚本块不必位于页面的<head>部分,只要不破坏任何 HTML 语法,它就可以去任何地方。