2013-08-10 2 views
0

페이지를 새로 고치지 않고 무언가를하려고합니다.하지만 그 방법은 페이지 새로 고침이 필요합니다. 궁극적 인 목표는 하나도 가지고 있지 않는 것입니다.AJAX에서 클래스를 초기화해야합니까?

두 가지가 잘못되었습니다. 하나는 다른 하나는 Ajax를 이해하지 않는, 기본 HTML이다

HTML 문제

나는이 요소 옆의 링크를 클릭하면 :.

<label class="checkbox"> 
    <input type="checkbox" name="aisis_options[package_Aisis-Related-Posts-Package-master]" 
    value="package_Aisis-Related-Posts-Package-master" checked=""> 
     Aisis-Related-Posts-Package-master <a href="#">(Disable)</a> 
</label> 

그런 다음 전자

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
     }); 
    }); 
})(jQuery); 

페이지를 새로 고치지 만 페이지가 새로 고쳐지고 맨 위로 스크롤됩니다. 나는 이것을 막을 방법이 있다고 가정하고있다. 또는 <a href=""> 부분에 "#"이있는 나의 어리 석음 일까?

아약스 문제

하여 위의 JS에 다음 나는 옆 클라이언트에서 서버로 정보를 전달에서, 모든 아약스를 이해하지 못하는, 그래서 추가 :

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
      $.ajax({ 
       url : <?php CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?>, 
       type : 'GET', 
       data : { 'element_name' : el.prop('name') }  
      }); 
     }); 
    }); 
})(jQuery); 

다음

class CoreTheme_AdminPanel_Template_Helper_UncheckPackageThemeHelper{ 

    private $_element_name = null; 

    public function __construct(){ 

     if(isset($_GET['element_name'])){ 
      $this->_element_name = $_GET['element_name']; 
      echo $this->_element_name; 
     } 
    } 
} 

는 기본적으로 나는 내가 D를 클릭하면 element_name 에코를보고 싶으면 다음 클래스를 썼다 가능하면 체크 아웃 된 객체의 체크 박스 옆에있는 링크가 가능합니다.

내 문제는 내가 수행 한 작업이 Java 스크립트를 제외하고 which I got from the answer to this question 요소를 선택 취소했다는 것을 이해하지 못한다는 것입니다.

아이디어는 다음과 같습니다. 비활성화를 클릭하고 확인란을 선택 해제하고 가능한 경우 페이지를 새로 고치지 않고 요소 이름을 PHP에 전달하여 에코합니다. 이 클래스는 인스턴스화되지 않습니다

업데이트. 이제까지. 어디에서. 아이디어는 클릭만으로이 모든 작업을 수행하는 것입니다. 비활성화를 클릭하고 클래스에 요소 이름을 전달한 다음 해당 클래스가 페이지 새로 고치기를 통해 변수를 모두 에코 링하게합니다 ...

답변

0

HTML 문제 : Arun은 e.preventDefault()을 사용하여 기본 클릭 동작을 방지했습니다.

AJAX 문제 : 나는 당신이 당신의 URL을 되풀이하지 않았다는 것을 알게되었습니다.

<?php echo CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?> 
+0

그것은 WordPress 일입니다, 그것은 나를 위해 자동 에코 것입니다. 그건 내 문제가 아니야, 내 문제는 어떻게 작동 할거야? 내가 만든 Ajax는 어떻게 클래스를 인스턴스화하고, 변수를 전달한 다음, 클래스에 표시된대로 변수를 화면에 표시하지 않고 페이지를 다시 고치지 않고 어떻게 표시할까요? 너는 결코 그것을 설명하지 않았다. 또한 Update @Ankit을 참조하십시오. – TheWebs

0

HTML 문제. 나는 문제가 당신이 확실히 아룬의 답변을 사용할 수 있지만, 당신은 단지 href 속성을 제거 할 수 있으며 페이지 상단 및/또는 이동하지 않습니다 a

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(e){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
      e.preventDefault();//prevent the default action 
     }); 
    }); 
})(jQuery); 
+0

그리고 아약스에

<?php CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?> 

변경? 또한 새로 업데이트 된 영업일을 확인하십시오. @Arun – TheWebs

0

의 기본 동작을 방해하지 않은 생각 새롭게 하다.

관련 문제