2012-02-15 4 views
0

면책 조항 : 본인은이 점에 매우 익숙하므로이를 염두에 두시기 바랍니다.새로 고침 페이지가 새로 고침되지 않고 자바 스크립트 다시로드

안녕하세요,

임 페이지를 벗어나지 않고도 페이지의 내용을로드하는 AJAX를 사용하여 사이트를 설정

. 목록 정보를로드하는 데 자바 스크립트를 사용하는 몇 페이지가 있습니다. 여기

링크 설정이 보이는 것입니다 :

#home 
#list.php?list=$list_id 

내가 변수라는 $의 list_id로 있고 목록을로드 할 몇 가지 자바 스크립트와 것을 사용합니다. 내가 직면하고있는 문제는 하나의 목록을로드하면 (ID 1로 목록을 말하게 함) 다음으로 돌아가서 다른 목록을로드합니다 (ID 2로 목록을 말하도록 함). 새 목록 ID를 고려하여 자바 스크립트가 다시로드되지 않았습니다.

어쨌든 내가 페이지를 새로 고치지 않고 새 변수를 설명하기 위해 자바 스크립트 코드를 다시로드 할 수 있습니까?

감사합니다.

+0

우리가 도울 수 있도록 전체 코드를 표시하십시오. 브라우저에서 "돌아 가기"란 무엇을 의미합니까? – JMax

답변

0

숨겨진 입력 필드에 $ list_id를 저장 한 다음 아약스 호출 후에 업데이트 할 수 있습니까?

<input type="hidden" id="list-id" value="<?php echo $list_id; ?>" /> 

    <script> 
    //ajax request 
    var $list_id = $('#list-id'); 
    $.ajax({ 
    url:'http://www.example.com/page.php', 
    data:'list_id=' + $list_id.val(), 
    success:function(data){ 
    //do something 

    $list_id.val() = $list_id.val() + 1; 
} 
}); 

그냥 당신에게 아이디어를 제공하기 위해 신속하게 함께이 자갈길, 그래서 일부 JS 오류

4

내가 정확히 직면하고 어떤 문제를 이해 해달라고있을 수 있습니다. jQuery.loadScript 기능

+0

페이지 내의 스크립트 인 경우 어떻게해야합니까? 예 : . JS에서 PHP 변수를 사용할 때 페이지에서 JS를 사용하고 있음을 명심하십시오. – user1210772

0

당신은 점점 (및 실행)에 대한 jQuery의 getScript() 기능을 사용할 수있는 스크립트를

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "somefile.js"; 
document.getElementsByTagName("head")[0].appendChild(script); 

또는 사용 페이지를 새로 고치지 않고 스크립트를 다시로드하려면 하지만,이 방법으로 할 수있다 동적으로 예 :

$.getScript("/js/myscript.js"); 
+0

스크립트가 extenal 파일에 없습니다. php 파일에서

1

DOM 스크립트에 HTML을 삽입 할 때 실행됩니다. 따라서 AJAX를 통해 HTML을로드하면 포함 된 스크립트를 실행할 수 있습니다.

0

일반적으로 여기에 프로토콜을 설계하는 것이 가장 좋습니다. 로드되는 모든 '목록'을 구문 분석하는 함수, URL 해시를 구문 분석하는 함수 및 새 목록을로드하는 함수가 있어야합니다. location.hash으로 URL 해시를 얻을 수 있습니다.

다음은 간단한 예입니다. 목록이 특정 형식이어야합니다. 따라서 Javascript는 한 번만로드해야하며 추가 된 종속성없이 구문 분석 할 수있는 특정 형식을 기대해야하므로 프로토콜 기반입니다. 의존성을 실제로 요구하는 것은 괜찮지 만, how/when/where는 모두 프로토콜에 적용되어야합니다.

<a class="listLoader" href="#list.php?list=1">List 1</a> 
<a class="listLoader" href="#list.php?list=2">List 2</a> 
<a class="listLoader" href="#list.php?list=3">List 3</a> 

.

$('.listLoader').onclick(function() { 
    $.ajax({ 
     'success': function() { 
      //Do what you gotta do with your lists 
     }, 
     'url': location.hash.substring(1) 
    }); 
}); 
관련 문제