2011-12-17 2 views
-1

Big Commerce 플랫폼을 사용하는 사이트에서 작업하고 있습니다. 장바구니 페이지는 PHP에서 호출하는 스 니펫으로 작성됩니다. PHP 파일에 액세스 할 수 없습니다. 내가해야 할 일은 주어진 인덱스에서 span 태그의 값을 가져 와서 값을 검색하는 것입니다.이 값을 사용하여 내 minQTY 텍스트 필드를 결정해야합니다. 페이지가로드 된 후 내 코드를 실행하고 싶습니다. 그러나 내 스크립트는 페이지에서 작동하지 않습니다. PHP로드 후 jQuery가 실행됩니다.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 

$(document).load(function(){ 
      $("a.CustomizeItemLink"); 
      $changeIndex = $("a.CustomizeItemLink").index('a.CustomizeItemLink'); 
      $change = $("a.CustomizeItemLink").length; 
      $productTestArray = ['/american-boxwood-buxus/', '/lavander-crape-myrtle-lagerstroemia-fs/'] 
      $productLength = $productTestArray.length; 

      for(i=0, j=0; i<=$change, j<=$productLength; i++, j++){ 
      $productTest = "http://www.tnnursery.net"; 
      $productTestValue = $("td.blah a").get(i);      
      $productTest = "http://www.blah.net" + $productTestArray[j]; 
      $MD = $productTestValue; 
      $MS = $productTest; 
      $minQTYArray = ['100','100','75','50','25','20','15']; 
      $cartSpanValue = $(".productAttributes td span:eq("+i+")").text();    
      $rdTestArray2 = ['6-12','12-18',"1-2'","2-3'","3-4'","4-5'","5-6'"]; 
      $arr2Test = jQuery.inArray($cartSpanValue, $rdTestArray2); 
      $minQTYValue = $minQTYArray[$arr2Test]; 
      $cartQtyValue = $(".qtyInput:eq("+i+")").val(); 

      if($MD != $MS){ 

      } 
      else{  
       if($cartQtyValue >= $minQTYValue){ 

       } 
       else{ 
        if ($arr2Test == -1){ 
        $cartQtyValue = $(".qtyInput:eq(" + i + ")").val('100');  
        } 
        else{ 
        $cartQtyValue = $(".qtyInput:eq(" + i + ")").val($minQTYValue); 
        alert($cartQtyValue); 
        } 
       } 
      } 
     } 

    }); 
}); 
}); 
    </script> 

</td> 
    <td class="ProductName" colspan="1"> 
     <a href="http://www.blah.net/blah-blah-blah/">Item Name1</a><table class="productAttributes" cellpadding="0" cellspacing="2"> 
<tr> 
<td> 
    <label>Plant&#8203; Size&#8203;s:</label> 
</td> 
<td> 
    <span>12-18&#8203;&quot;</span> 
</td> 

변경
()

 <div style="display: none" class="WrappingOptions"> 
      Gift Wrapping: 

      <a href="#" onclick="Cart.ManageGiftWrapping('4eea86d587825');" style="">Add</a> 
      <span style="display: none"> 
       (<a href="#" onclick="Cart.ManageGiftWrapping('4eea86d587825');">Change</a> or <a href="cart.php?action=remove_giftwrapping&amp;item_id=4eea86d587825" onclick="return Cart.RemoveGiftWrapping();">Remove</a>) 
      </span> 
      <br /> 
      <span style="display: none"> 
       Gift Message: 

      </span> 
     </div> 
    </td> 
    <td align="center" class="CartItemQuantity"> 
     <span style="padding: 0; margin: 0;"><input type="text" size="2" name="qty[4eea86d587825]" id="text_qty_4eea86d587825" class="qtyInput quantityInput" value="50"/></span> 

     <div style=""> 
      <a href="cart.php?action=remove&amp;item=4eea86d587825" onclick="Cart.RemoveItem('4eea86d587825'); return false;" class="CartRemoveLink">Remove</a> 
     </div> 
    </td> 

나는 m를 설정하는 방법 내 질문은 y PHP가 페이지에로드 된 후 실행할 jQuery?

+0

무엇을 의미합니까? PHP는 서버 측 언어로 jQuery가 기본적으로 실행되기 전에 "페이지에로드"됩니다. –

답변

0

$(document).load$(window).load으로 바꾸어보십시오. 먼저

+1

또한 : 단지 메모. jQuery 문이 페이지의 맨 처음 줄이라하더라도 페이지의 모든 PHP는 이미 실행되었을 것입니다. PHP는 클라이언트의 웹 브라우저에 도달하기 전에 서버에서 발생하는 ** 전처리 **입니다. JavaScript 및 jQuery는 브라우저가 DOM에서 브라우저를 발견 할 때까지 실행되지 않습니다. (AJAX 호출이있는 경우 모든 베팅이 해제되지만 동기식 서버 상호 작용에서는 PHP가로드되기 전에 JavaScript가 실행되고 있다고 걱정할 필요가 없습니다 .DOM 준비가 가장 중요하게 고려해야합니다. – Aaron

+0

감사합니다. 이 코드를 사용했지만 코드를 정리하지 못했습니다. 내 잘못이었습니다. 감사합니다 . – Matty

0
$(document).ready(function(){ 
//your code here 

}); 
+0

실제로 시도했는데 원래 갖고 있었지만 아무 것도하지 않았습니다. – Matty

1

, 당신은 $(document).ready(function(){});

둘째를 복원해야는 PHP는 서버 측에서 실행되며, 따라서 페이지 전에 자체가로드됩니다. PHP가 실행되기 전에 자바 스크립트가 실행된다는 걱정을해서는 안됩니다.

마지막으로, 코드가 실행되지 않는 이유는 구문 오류 때문일 수 있습니다. 직접 코드를 복사 한 경우 시작 기능에 여러 개의 결말이 있습니다. 이것이 의도적인지 아닌지는 잘 모르겠지만 하중 함수에 대해 세 가지 폐점이 있습니다. 또한

,이 라인 :
$productTestArray = ['/american-boxwood-buxus/', '/lavander-crape-myrtle-lagerstroemia-fs/'] 

가 문을 종료 세미콜론이 없습니다. 이러한 변경을 수행하고 코드가 제대로 작동하는지 확인하십시오.

EDIT : 또한 For 루프에서 i와 j를 정의합니다. 왜 그런가요? 나는 그들이 항상 당신이 설정 한 것과 같은 번호가 될 것이라고 믿습니다. 내가 놓친 게 있니?

+0

결국 $ productTestArray는 훨씬 더 커집니다. $ 변경보다. 그 구문 오류를 깨달았다. 만약 내가 그것에 세심한 얼굴을 심어 몇 시간을 절약 할 수 있습니다. PHP에 대한 정보 주셔서 감사 Logged – Matty

관련 문제