jQuery - 如果>如何显示外部网页选中2个复选框?

时间:2011-05-12 18:29:42

标签: php javascript checkbox

我要做的是当用户点击2个复选框时会弹出新窗口的网页。我得到了1个复选框的解决方案,但我很难弄清楚如何做到这两个。我试过或者||或者和&&但我没有工作。

这是我的代码:

<?php
 // when user clicked no checkbox

if(isset($_POST['bus']) &&
   $_POST['bus'] == 'bar' &&  $_POST['bus'] != 'carryout')
{
    echo '<script type="text/javascript" language="javascript"> window.open("http://yahoo.com", target="_self"); 
</script>'; 
}

// when user clicked yes checkbox

if(isset($_POST['bus']) && 
   $_POST['bus'] == 'bar' &&  $_POST['bus'] != 'carryout')
{
      echo '<script type="text/javascript" language="javascript"> 
window.open("http://google.com", target="_self"); 
</script>'; 
}

else{

/// when user clicked both checkboxes
if(isset($_POST['bus']) && $_POST['bus'] == 'bar' &&
   $_POST['bus'] == 'carryout')
{

  echo '<script type="text/javascript" language="javascript"> 
window.open("http://getvms.com", target="_self"); 
</script>'; 
}}
?>

form action="<?php echo $PHP_SELF;?>" method="post">

 Type of restaurant are you?<br>
    <br>
    BAR
    input type="checkbox" name="bus" id="1" value="bar" ?php if(isset($_POST['bus'])) ?>/><br>

 CARRYOUT input type="checkbox" name="bus" id="2"value="carryout" ?php if(isset($_POST['bus']))?>/>

input type="submit" name="formSubmit" value="Submit" />

</form>

3 个答案:

答案 0 :(得分:2)

跟踪您选中的状态

如果需要计算复选框,则引入一组值。假设您的复选框命名为:

<input type="checkbox" name="cb1" data="singleURL1" />
<input type="checkbox" name="cb2" data="singleURL2" />
那么你可以这样做:

$(function(){

    var checked = {
        cb1: false,
        cb2: false,
        both: function(){
            return this.cb1 && this.cb2;
        },
        allUrl: "some combined URL"
    };

    $(":input:checkbox").click(function(){
        checked[this.name] = this.checked;
        if (checked.both() === true)
        {
            var url = checked.allUrl;
            // open combined URL
        }
        else
        {
            var url = $(this).attr("data");
            // open single checkbox URL
        }
    });

});

我已将所有代码放在DOM就绪匿名功能机箱中,可以按原样使用。

答案 1 :(得分:1)

使用jQuery,您可以执行$('input:checkbox').click(function(){...})

答案 2 :(得分:0)

<?php

$url = false;

if(isset($_POST['bar']) && isset($_POST['carryout'])) $url = 'http://carryoutbar.com';
elseif(isset($_POST['carryout'])) $url = 'http://carryout.com';
elseif(isset($_POST['bar'])) $url = 'http://bar.com'; // nice place, pay foo a visit!

if($url) echo '
    <script type="text/javascript" language="javascript">
      window.open("' . $url . '", target="_self"); 
    </script>';
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

Please select:<br/>

<input type="checkbox" name="bar" value="1" /> BAR<br/>
<input type="checkbox" name="carryout" value="1" /> Carryout<br/>

<input type="submit" name="formSubmit" value="Submit" />

</form>