2010-02-23 3 views
4

나는 jQuery을 처음 사용하며 다음과 같은 문제점이 있습니다.jQuery .Ajax() 함수 selector, 변수에 특정 데이터 저장

내 프로젝트의 프로젝트는 2 페이지, 1.JSP와 2.html입니다. 이제 2.html에서 선택한 데이터를 선택하여 1.JSP에서 사용하고 싶습니다. 이제 이것은 .load을 사용하여 매우 쉽게 달성되었지만 데이터를 페이지 (div 태그 등)에 두는 대신 JavaScript 변수에 표시하여 해당 데이터를 수정하거나 데이터베이스에 추가 할 수 있습니다. .

나는 .ajax를 사용하여 시도하고 다음 코드를 쓸 수 있었다 :

var value = (function() { 
     var val = nulll; 
     var filename = " 2.html"; 

     $.ajax ({ 
      'async': false, 
      'global': false, 
      'url': filename, 
      'success' : function(data) { 
       val = data; 
      } 
     }) 
     return val; 
    })() 
    document.write(value) 

나는 선택의 형식을 배치해야합니까 (예를 들어 div.id5) 내 변수가 아니라 전체 파일보다에만 관련 데이터가 너무 데이터?

답변

1
function modify_data(data){ 
.... 
} 

$.ajax({ 
    type: "POST", //POST OR GET 
    url: "1.JSP", // URL TO SEND AJAX DATA TO 
    data: "name=John&location=Boston", // DATA TO SEND 
    success: function(data){ // CALLBACK FUNCTION 
    modify_data(data);// sending data to another function to play with it 
    $('body').html(data); 
    } 
}); 

이것은 Ajax 요청을 전송하고, 수신 된 데이터를 수정 한 후 본체에 인쇄하는 방법이다.

<body> 
<h1 id="foo">hello</h1> 
</body> 

이 그런 다음 1.html에서이 같은 H1 안의 텍스트를 얻을 것 :

+0

2.html 페이지에 아무 것도 추가 할 수 없습니다. 난 그냥 2.html 파일이 잘 형성되어 (그리고 아무것도 바꿀 수 없거나 그것에 아무것도 추가해야합니다.) 이제 내 문제는 자바 스크립트 변수에서 몇 가지 태그 (2.html에서)의 특정 데이터를 검색하고 싶습니다. 1.JSP 페이지 (데이터베이스에 특정 정보를 추가 할 수 있도록). 2.html 페이지에서 1.jsp 페이지로가는 'p.hello'태그의 간단한 예제가 도움이 될 것입니다. 감사합니다. – user279321

0

의 당신이 1.html 및 2.html 있고, 2.html의 몸 안에이 있다고 가정 해 봅시다 :

var filename = " 2.html"; 

$.ajax ({ 
    'async': false, 
    'global': false, 
    'url': filename, 
    'success' : function(data) { 
     var html = $(data); 
     html.each(function() { 
      if(this.tagName && this.tagName == 'H1') { 
       alert($(this).html()); 
      } 
     }) 
    } 
}) 

이렇게하면 내부에 'hello'가 표시된 성가신 JS 경고가 표시됩니다.

+0

이 코드는 작동하지 않습니다 ..... 더 많은 도움이 필요합니다. – user279321

+0

IE8 및 Firefox에서 저에게 맞습니다. 이 코드 앞에 jQuery가 포함되어 있습니까? montrealist

0

$ .load() 함수가 URL을 따라 jquery 선택기를 받아 결과를 필터링하는 기능을 말하는 것 같습니다.

$('div').load('2.html div.id5'); 

그래서 당신이 정말로 $ 아약스() 함수를 사용하여 동일한 작업을 수행 할 수 있도록하려면 : 즉, 오늘 당신이 이런 식으로 일을하고 말을합니다. 가장 쉬운 방법은 성공 이벤트 함수에서 .find() jquery 함수를 사용하는 것입니다. 성공 이벤트 코드를 입력하면 전체 .ajax() 호출이 생략됩니다.

success: function (data) { 
    val = $(data).find('div.id5').html(); 
    // now you ony have that specific div's contents 
} 

자바 스크립트 코드에서 몇 가지 다른 오류를 보았습니다 (실제로 해당 코드를 사용하는 경우).

// null is defined with 2 ls 
    var val = nulll; 

    // Is the space on purpose? 
    var filename = " 2.html";