2013-02-16 2 views
-2

Я хочу получить массив выбранных пользователем флажков, например, если пользователь выбирает продукт1 и в продукте1, это электронная почта @ acom, как если бы пользователь выбрал много флажков, я хочу, чтобы все данные электронной почты в массиве, которые он выбрал, продукт. Данные будут получать от имени идентификатора, я застрял на здесь, работая, чтобы решить эту проблему в течение 2 дней, но не получили успеха:Как получить массив через выбранные флажки в jQuery или JavaScript?

 <?php v_start($this);?> 
    <style> 
    .highlight{ font-wieght:bold; color:#F00;} 
    .amounts{} 
    .tick{ float:left; margin-top:-5px;}  
    .highlight .amount{ display : inline;} 
    .tick img{ display:none; width : 25px; height : 25px; margin-right: 10px; float : left;} 
    .highlight .tick img{ display : block;} 
    </style> 


    <script> 
    jQuery(document).ready(function(){ 

     jQuery('.amounts').click(function(){ 
      var pname = jQuery(this).attr('product_name'); 
      if(!jQuery(this).hasClass('highlight')){ 
       jQuery('.amount-'+pname).removeClass('highlight'); 
       jQuery(this).addClass('highlight'); 
      } 
      else { 
       jQuery(this).removeClass('highlight'); 
       }   
     }); 

    }); 
    </script> 
    <h1><?php echo __l('Step 1 ')?>-> <span style="color:red"><?php echo __l('Step 2')?></span></h1> 

    <?php echo $this->FormManager->create('User',array_merge($form_options,array('default'=>true)));?> 

     <table> 
      <thead> 
       <tr cellpadding="0" cellspacing="0" width="100%" > 
        <?php foreach($name as $product) { foreach ($product as $key) { 
     for($i=0;$i<sizeof($key['ProductPlan']);$i++) { 
         ?> 
        <th> 
         <?php echo $key['Product']['name']?> 
         <?php echo $this->FormManager->input($key['Product']['name'],array('type'=>'hidden','id'=>$key['Product']['name'],'class'=>'hid'))?> 
        </th> 
        <?php }}?> 
       </tr> 
      </thead> 
      <tbody> 
       <tr> 
        <?php 
         foreach($name as $product) { 
          $c = 0; 
        ?> 

         <?php 
          foreach ($product as $key) { 
           $c++; 
         ?> 
          <td> 
          <?                          for($i=0;$i<sizeof($key['ProductPlan']);$i++) { ?> 
           <div 
            class = 'packages' 
            id  = "<?php echo $key['Product']['name'],$key['ProductPlan'][$i]['product_plan_id']?>" 
            onclick = "document.getElementById('<?php echo $key['Product']['name']?>').value='<?php echo $key['ProductPlan'][$i]['product_plan_id']?>';" 
           > 

            <div product_name='<?php echo $key['Product']['slug']?>' class='amounts amount-<?php echo $key['Product']['slug']?>'> 
             <div class='tick'> 
              <?php echo $this->Html->image('tick.png', array('width'=>'25', 'height'=>'25'));?> 
             </div> 

             <div class='amount'> 
              <?php echo $key['ProductPlan'][$i]['name'];?> 
              </br></br> 
             </div> 
             <div>Create Up To:<?php echo $key['ProductPlan'][$i]['limit'];?></div></br> 
             <div>Product Plan Amount:<?php echo $key['ProductPlan'][$i]['product_plan_amount'];?>.$</div></br> 
            </div> 
           </div> 
           <?php }?> 

         <?php } ?> 
        <?php } ?> 


          </td> 
       </tr> 
<tr>   
</tr> 
      </tbody> 
     </table>  
+0

И ваши флажки где ...? –

+0

@ axel.michel checkboxes вызывают через вход – usii

+0

Только вход я могу видеть в вашем коде тип скрытый –

ответ

0

Я не уверен, я понимаю, что вы просите, будет это решение поможет?

http://jsfiddle.net/rG6bF/1/

$(":checkbox").click(function(e) { 
    $.each($(":checked"),function(idx,chkbox) { 
     log($(chkbox).attr('id')); 
    }); 
}); 
+0

приятный человек .... и действительно закрыт для этого. – usii

0

Было бы проще, чтобы помочь вам, если вы могли бы предоставить HTML -output вместо PHP-источника.

Если вы хотите настроить таргетинг на все проверил флажки, и, возможно, их относительные входные поля электронной почты, вы могли бы использовать что-то вроде этого:

var email_arr = new Array(); 
$('input:checkbox:checked').each(function() { //goes through each checked input box 
    email_arr.push($(this).siblings("input.email").val()); //Gets the value of an email input field 
}); 

Важно то, как вы поместите электронный вход-поле. Если он не находится в том же элементе, что и флажок, вам может потребоваться переместить узел или два с помощью .parent или .parents.

Надежда, что помогает,

// Somersault

Смежные вопросы