2013-12-16 48 views
0

我尝试了多种不同的答案在这里建议,但所有似乎并没有与我想要完成的工作。PHP开关案例 - 保持选项

我试图设置选择框中的选项来选择选项并提交它。

我正在使用开关盒,因为它似乎是一种更快的方式来编程,以反对if else语句。

我在页面上有iframe。所有有针对性的链接按照选项工作,但如果我尝试回显所选的选项,它将只显示所选的最后一个选项,因为它当前正在选择我的所有选项,而这不是我想要的。

这里是我的代码:

PHP:

if (isset($_POST['listings'])){ 
     $listings = $_POST['listings']; 
    } else if (isset($_GET['listings'])) { 
     $listings = $_GET['listings']; 
    } else { 
     $listings = 'chooseListing'; 
    } 

    switch ($listings) { 
     case 'captivaCondo': 
      $iframe = 'http://sancapmls.com/san/idx/index.php?key=09b24ea58e44d14f9f5efed2bfd1edb2'; 
      $selected = 'selected'; 
      break; 
     case 'captivaResidential': 
      $iframe = 'http://sancapmls.com/san/idx/index.php?key=90f72cf9a9a8fe486dff35cede5208b1'; 
      $selected = 'selected'; 
      break; 
     case 'sanibelCondo': 
      $iframe = 'http://sancapmls.com/san/idx/index.php?key=2282d6f0deb849d6a4915685b7677848'; 
      $selected = 'selected'; 
      break; 
     case 'sanibelResidential': 
      $iframe = 'http://sancapmls.com/san/idx/index.php?key=ceb9ec5fc169c6405d234e9b361f8915'; 
      $selected = 'selected'; 
      break; 
     case 'choose': 
      $iframe = 'choose.php'; 
      $selected = 'selected'; 
      break; 
    } 

HTML:

<!-- Search Button --> 
    <div class="row"> 
     <form role="form"> 
     <div class="col-md-8"> 
      <select name="listings" class="form-control input-lg"> 
       <option value="choose">Choose an option</option> 
       <option value="captivaCondo">Captiva Condo</option> 
       <option value="captivaResidential">Captiva Residential</option> 
       <option value="sanibelCondo">Sanibel Condo</option> 
       <option value="sanibelResidential">Sanibel Residential</option> 
      </select> 
      </div> 
      <div class="col-md-4"> 
      <button type="submit" class="btn btn-primary btn-lg btn-block"><i class="glyphicon glyphicon-home"></i> Search</button> 
      </div> 
     </form> 
    </div><!-- /.row --> 
    <br> 
<!-- iFrame --> 
    <div class="row"> 
     <div class="col-md-12"> 
      <iframe src="<?php echo $iframe; ?>"></iframe> 
     </div> 
    </div> <!-- /.row --> 

任何帮助和指导是非常感谢!

+2

你从来没有设置'选择=“选中”'在你的html – Horen

+0

不应该'case'选择''是'case'chooseListing''? – OneOfOne

+0

'$ selected'变量似乎没有被使用。您需要让您的开关设置一个变量,以区分您选择的选项,然后将“selected =”选定的“'属性添加到更正的元素”

回答

2

这是一个有点脏,但它应该解决您的问题。首先从交换机中删除$selected变量。这不是必需的。相反,我们使用switch来为您的iframe设置网址,然后将其保留。

if (isset($_POST['listings'])){ 
    $listings = $_POST['listings']; 
} else if (isset($_GET['listings'])) { 
    $listings = $_GET['listings']; 
} else { 
    $listings = 'chooseListing'; 
} 

switch ($listings) { 
    case 'captivaCondo': 
     $iframe = 'http://sancapmls.com/san/idx/index.php?key=09b24ea58e44d14f9f5efed2bfd1edb2'; 
     break; 
    case 'captivaResidential': 
     $iframe = 'http://sancapmls.com/san/idx/index.php?key=90f72cf9a9a8fe486dff35cede5208b1'; 
     break; 
    case 'sanibelCondo': 
     $iframe = 'http://sancapmls.com/san/idx/index.php?key=2282d6f0deb849d6a4915685b7677848'; 
     break; 
    case 'sanibelResidential': 
     $iframe = 'http://sancapmls.com/san/idx/index.php?key=ceb9ec5fc169c6405d234e9b361f8915'; 
     break; 
    case 'choose': 
     $iframe = 'choose.php'; 
     break; 
} 

现在让我们添加一个条件在<option>元素放在selected="selected" atrribute:

<select name="listings" class="form-control input-lg"> 
    <option value="choose">Choose an option</option> 
    <option value="captivaCondo" <?php if($listings == "captivaCondo") print('selected="selected"'); ?> >Captiva Condo</option> 
    <option value="captivaResidential" <?php if($listings == "captivaResidential") print('selected="selected"'); ?> >Captiva Residential</option> 
    <option value="sanibelCondo" <?php if($listings == "sanibelCondo") print('selected="selected"'); ?> >Sanibel Condo</option> 
    <option value="sanibelResidential" <?php if($listings == "sanibelResidential") print('selected="selected"'); ?> >Sanibel Residential</option> 
</select> 

它不是完美的,但它应该帮助你作为一个体面的开始。

+0

Thank you!This worked! – MoakDesigns

+0

@MoakDesigns非常欢迎!乐于帮助! – Crackertastic

0

尝试使用:即你需要在HTML中添加selected<option>标签像<option value="Your vale" selected='selected'>Your text</option>

if (isset($_POST['listings'])){ 
     $listings = $_POST['listings']; 
    } else if (isset($_GET['listings'])) { 
     $listings = $_GET['listings']; 
    } else { 
     $listings = 'choose'; 
    } 


     <?php $listingsOptions = array('choose'=>'Choose an option', 'captivaCondo'=>'captivaCondo', ......); 

     <select name="listings" class="form-control input-lg"> 
      <?php foreach($listingsOptions as $key=>$listing):?> 
       <option value="<?php echo $key;?>" <?php if($listings==$key): echo "selected = 'selected'" ; endif; ?> ><?php echo $listing;?></option> 
      <?php endforeach;?> 
     </select> 

,而不是

  <select name="listings" class="form-control input-lg"> 
      <option value="choose">Choose an option</option> 
      <option value="captivaCondo">Captiva Condo</option> 
      <option value="captivaResidential">Captiva Residential</option> 
      <option value="sanibelCondo">Sanibel Condo</option> 
      <option value="sanibelResidential">Sanibel Residential</option> 
     </select>  
+0

我试过你的方法,它仍然将所有选项设置为选中状态,而不是选择值并将该选项设置为选中状态。 – MoakDesigns

+0

I已经更新了我的答案,请检查,不需要switch case语句。 –