2011-09-09 5 views
0

오늘, 시간 시작 및 시간 종료를 묻는 양식을 기반으로 사용할 수있는 강조 표시된 데스크를 얻으려고합니다. 사용할 수있는 모든 책상을 에코 할 수 있지만 jquery를 사용하여 작업 할 수 없습니다.php 배열 및 jquery 클래스 추가

foreach ($allData as $desk => $id){ 

    foreach ($id as $computer){?> 
     <div id="<?php echo $desk?>"></div><?php 
    } 

} 

<style> 
    .availableDesk{ 
background: #000000 
    } 
</style> 

<script> 
    $(document).ready(function() { 
    jQuery(" <?php echo $desk ?> "), addClass('availableDesk') ; 
}) 
</script> 

책상 :

<ul class="tabs"> 
<li id="1A"><a href="#1A"><div id="ddesk"></div></a></li> 
    <li id="1B"><a href="#1B"><div id="ddesk"></div></a></li> 
    <li id="1C"><a href="#1C"><div id="ddesk"></div></a></li> 
</ul> 

답변

2

당신은 당신의 PHP 블록의 끝에서 ?>을 놓치고있어.

<?php 
foreach ($allData as $desk => $id){ 

    foreach ($id as $computer){?> 
     <div id="<?php echo $desk?>"></div><?php 
    } 

} // You need a "?>" here 
?> 

jQuery 코드에 몇 가지 문제가 있습니다. 먼저 $desk이 ID 인 경우 $('#ID')을 수행해야합니다. 둘째, 마침표 대신 addClass 앞에 쉼표가 있습니다.

jQuery("#<?php echo $desk ?>").addClass('availableDesk'); 

P. HTML ID는 숫자로 시작하지 않아야합니다. 또한 동일한 ID로 여러 요소를 가질 수 없으므로 클래스를 대신 사용하는 것이 좋습니다. 구문 적

내가 여기에 잠재적 인 문제의 몇 가지를 볼 수 있습니다
+0

하지 만입니다 책상 중 하나를 강조 - foreach 성명서에 jquery를 넣어야합니까? – Jamie

+0

@Jamie :'available' 클래스를 div에 추가하기 위해 jQuery가 필요하지 않습니다. 그냥 루프의 HTML에 추가하면됩니다. '

'. ID는 고유해야 할 필요가 있음을 기억하십시오. –

2

...

jQuery("<?php echo $desk ?>"), addClass('availableDesk') ; 

, 나는이 있어야한다고 생각 :

jQuery("#<?php echo $desk ?>").addClass('availableDesk'); 

참고 선택기에서 #, 이것은 jQuery를 알려줍니다 당신 이드를 찾고있다. addClass 메서드는 반환 된 항목에서 사용할 수 있으므로 쉼표 (,)가 아닌 쉼표 (,)가 필요합니다.

다른 문제는 PHP에서 foreach 루프의 ID를 쓰고 있다는 것입니다. 고유 한 ID를가집니다. jQuery("#<?php echo $desk ?>")을 쓸 때 문이 foreach 루프 외부에 있으므로 대상 ID와 일치하지 않습니다. 당신이 책상은 PHP에서 사용할 수 있음을 알고있는 경우

, 최선의 선택은 책상을 쓰기로 클래스를 설정하는 것입니다 ... 내 모든 문제를 해결하지만,

<div id="<?php echo $desk?>" class="availableDesk"></div> 
+2

또한 그는 for 루프의 각 div를 동일한 ID로 설정하는 것으로 보입니다. HTML ID는 고유해야합니다. –

+0

True - HTML ID는 문자로 시작해야하며 고유해야합니다. 제공된 코드에 따라 가능할 수도 있지만 그렇지 않은 경우도 있습니다. – Fenton

+0

게시 된 HTML에는 ID가 'ddesk'인 3 개의 div가 있습니다. –