2015-05-02 64 views
-2

美好的一天给大家:)。我只想问我该怎么办的的JavaScriptPHPforeachecho价值观里面,因为我想的JavaScript是一个动态的。 这里是静态的jsPhp foreach和echo里面的javascript

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('input[type="checkbox"]').click(function(){ 


     if($(this).attr("value")=="1"){ 
      $(".1").toggle(); 
     } 
     if($(this).attr("value")=="2"){ 
      $(".2").toggle(); 
     } 
     if($(this).attr("value")=="3"){ 
      $(".3").toggle(); 
     } 
     if($(this).attr("value")=="4"){ 
      $(".4").toggle(); 
     } 

    }); 
}); 
</script> 

,这是我想做的发生

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('input[type="checkbox"]').click(function(){ 

<?php foreach($data as $field): ?> 

     if($(this).attr("value")=="<?php echo $field->ID);?>"){ 
      $(".<?php echo $field->ID);?>").toggle(); 
     } 

<?php endforeach; ?>  
    }); 
}); 
</script> 

ID值形成的数据库是1,2,3,4。这就是全部。谢谢!

+0

非常不好的编码练习.. –

+0

很难说出为什么这样不起作用,因为我们不知道'$ data'的值是什么。你应该看看生成的JS来看看结果是什么。 – Quentin

+0

我真的不会使用PHP来做这件事,只需要:'$(“。”+ this.value).toggle()'而不是。 – Quentin

回答

-1

你可以将所有的值推送到一个js数组,并且比js数组做一个循环。

<script type="text/javascript"> 
$(document).ready(function(){ 
    my_values = Array; 
    <?php foreach($data as $field): ?> 
     my_values.push ("<?php echo $field; ?>"); 
    <?php endforeach; ?> 

    $('input[type="checkbox"]').click(function(){ 
     // java script loop here 
     for (var i in my_values) 
     { 
      if($(this).attr("value")== i) 
     { 
      $("."+this.value).toggle(); 
     } 
     } 
    }); 
}); 

</script> 
+0

他可以,但为什么会比现在的方法更好? – Quentin

+0

通过将两个代码分开,它将会更清晰和更具可读性。 – Kamran

+0

这有点主观(特别是因为你没有显示一半的新版本的代码)。也就是说,更好的问题可能是:它如何解决当前代码的问题? (对于这个问题,目前的代码有什么问题?) – Quentin