2015-05-02 3 views
-2

Добрый день всем :). Я просто хочу спросить, как я могу сделать PHPforeach и echo значения внутри JavaScript, потому что я хочу, чтобы Javascript быть динамичным. Вот статические JSPhp foreach и эхо внутри 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

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