而LOOP - PHP - 动态关闭括号

时间:2014-06-26 09:42:35

标签: javascript php mysql

我有一个数据库表

Column1 | Column2
-----------------
    1   | Program1 
    2   | Program2
    3   | Program3

。 。

这些在网页中列为复选框。 在用户点击提交之前,我需要他选择至少一个程序

这是我的javascript

var chkd = document.form1.Program1.checked
      if (chkd) {
        return true;
      } else {
         var chkd2 = document.form1.Program2.checked
         if (chkd2) {
           return true; 
         } else {
            var chkd3 = document.form1.Program3.checked
            if (chkd3) {
              return true; 
            } else {
                var chkd4 = document.form1.program4.checked
                if (chkd4) {
                  return true;
                } else {
            var chkd5 = document.form1.Program5.checked
                    if (chkd5) {
                    return true;
                  } else {      
                   alert ("Please select atleast one training program");
                   return false; 
                             }
            }
                   }
               }
            }

到目前为止,程序的数量是静态的,现在需要动态地更改它们。将添加新程序并删除旧程序。

从数据库中选中复选框我已经循环播放但是我无法通过循环正确回显javascript(我无法得到括号)

这是我到目前为止所做的,

$sql=blah blah blah
$result = mysqli_query($con, $sql);
echo "<script>";
while($row = mysqli_fetch_array($result))
    {
    if ($_SESSION["$row[1]"]=="Y") 
        {
        echo "
        var chkd$row[0] = document.form1.$row[1].checked 
        if (chkd$row[0]) {
            return true;
        } else {
        ";
        }
    }
echo "</script>";
?>

此输出

<script>
var chkd1 = document.form1.Program1.checked 
if (chkd1) {
    return true;
} else {

var chkd2 = document.form1.Program2.checked 
if (chkd2) {
    return true;
} else {

var chkd3 = document.form1.Program3.checked 
if (chkd3) {
    return true;
} else {

var chkd4 = document.form1.Program4.checked 
if (chkd4) {
    return true;
} else {

var chkd6 = document.form1.Program5.checked 
if (chkd6) {
    return true;
} else {
</script>

现在我怎么能动态关闭我在javascript中打开的括号。 我是一个绝对的初学者,我仍在学习,所以我不能正确的语法。 为这么长的帖子道歉。 感谢。

4 个答案:

答案 0 :(得分:4)

如果你回来了,你根本不需要别人,Javascript会在被告知返回时停止执行该功能。

   var chkd1 = document.form1.Program1.checked 
    if (chkd1) {
        return true;
    }

   var chkd2 = document.form1.Program2.checked 
    if (chkd2) {
        return true;
    }

   var chkd3 = document.form1.Program3.checked 
    if (chkd3) {
        return true;
    }

答案 1 :(得分:1)

总是可以添加一个计数器,然后多次迭代括号。

$count=0;
while($row = mysqli_fetch_array($result))
{
    if ($_SESSION["$row[1]"]=="Y") 
    {
        echo "
            var chkd$row[0] = document.form1.$row[1].checked 
            if (chkd$row[0]) {
                return true;
            } else {
            ";
        $count++;
    }
}
for($i=0;$i<$count;$i++)
{
    echo "}";
}

答案 2 :(得分:1)

您不需要循环输出任何内容。只需在Javascript中执行:

for (var key in document.forms.form1.children) // not just document.form1
    if (document.forms.form1.children[key].name != undefined && document.forms.form1.children[key].name.substring(0,7) == "Program" && document.forms.form1.children[key].checked)
        return true;
alert ("Please select atleast one training program");
return false; 

答案 3 :(得分:0)

用户已使用您可以轻松管理的Jquery选中或未选中复选框。为此,您不必动态生成JavaScript代码。

只需输入此代码,如果用户选中了任意一个或多个复选框,它将返回true,并且返回false则不检查支票簿。

if($("INPUT[checkbox]").is(':checked'))
{
      return true;   
}else {
      return false;
}

我希望这会对你有帮助..