jquery / ajax를 사용하여 Div의 콘텐츠 새로 고침 / 다시로드


80

버튼 클릭으로 div를 다시로드하고 싶습니다. 전체 페이지를 다시로드하고 싶지 않습니다.

내 코드는 다음과 같습니다.

HTML :

<div role="button" class="marginTop50 marginBottom">
    <input type="button" id="getCameraSerialNumbers" value="Capture Again" class="disabled" />
    <input type="button" id="confirmNext"  value="Confirm & Proceed" class="disabled marginLeft50" />
</div>

<input type="button" id="getCameraSerialNumbers" value="Capture Again">버튼을 클릭하면 <div id="list">....</div>전체 페이지를로드하거나 새로 고침하지 않고 새로 고침해야합니다.

아래는 내가 시도했지만 작동하지 않는 Jquery입니다.

$("#getCameraSerialNumbers").click(function () {
    $("#step1Content").load();
});

제안 해주세요.

다음은 내 페이지의 DIV입니다. 여기에는 일부 제품의 사진과 일련 번호가 포함되어 있습니다. 페이지로드시 데이터베이스에서 처음으로 전송됩니다. 그러나 사용자는 "다시 캡처"버튼을 클릭 <input type="button" id="getCameraSerialNumbers" value="Capture Again">하여 해당 정보를 다시로드하는 문제에 직면 합니다.

Div의 HTML 코드 :-

<div id="step1Content" role="Step1ShowCameraCaptures" class="marginLeft">

<form>
    <h1>Camera Configuration</h1>
    <!-- Step 1.1 - Image Captures Confirmation-->
    <div id="list">
        <div>
            <p>
                <a id="pickheadImageLightBox" data-lightbox="image-1" title="" href="">
                    <img alt="" id="pickheadImage" src="" width="250" height="200" />
                </a>
            </p>
            <p>
                <strong>Pickhead Camera Serial No:</strong><br />
                <span id="pickheadImageDetails"></span>
            </p>
        </div>
        <div>
            <p>
                <a id="processingStationSideImageLightBox" data-lightbox="image-1" title="" href="">
                    <img alt="" id="processingStationSideImage" src="" width="250" height="200" />
                </a>
            </p>
            <p>
                <strong>Processing Station Top Camera Serial No:</strong><br />
                <span id="processingStationSideImageDetails"></span>
            </p>
        </div>
        <div>
            <p>
                <a id="processingStationTopImageLightBox" data-lightbox="image-1" title="" href="">
                    <img alt="" id="processingStationTopImage" src="" width="250" height="200" />
                </a>
            </p>
            <p>
                <strong>Processing Station Side Camera Serial No:</strong><br />
                <span id="processingStationTopImageDetails"></span>
            </p>
        </div>
        <div>
            <p>
                <a id="cardScanImageLightBox" data-lightbox="image-1" title="" href="">
                    <img alt="" id="cardScanImage" src="" width="250" height="200" />
                </a>
            </p>
            <p>
                <strong>Card Scan Camera Serial No:</strong><br />
                <span id="cardScanImageDetails"></span>
            </p>

        </div>
    </div>
    <div class="clearall"></div>

    <div class="marginTop50">
        <p><input type="radio" name="radio1" id="optionYes" />Yes, the infomation captured is correct.</p>
        <p><input type="radio" name="radio1" id="optionNo" />No, Please capture again.</p>
    </div>
    <div role="button" class="marginTop50 marginBottom">
        <input type="button" id="getCameraSerialNumbers" value="Capture Again" class="disabled" />
        <input type="button" id="confirmNext"  value="Confirm & Proceed" class="disabled marginLeft50" />
    </div>
</form>

이제 <input type="button" id="getCameraSerialNumbers" value="Capture Again" class="disabled" />버튼 을 클릭 하면 해당 정보가 <div id="list">... </div> 다시로드됩니다.

더 많은 정보가 필요하면 알려주세요.


1
여기에는 세부 사항이 거의 없습니다. 어디에서 콘텐츠를 얻으려고합니까? 그렇게해야하는 코드는 무엇입니까? 오류가 있습니까? 왜 작동하지 않습니까?
Rory McCrossan 2013 년

정확히 무엇을 재 장전 하시겠습니까? 데이터베이스를 호출해야합니까?
Alvaro

# step1Content의 내용과 버튼을 클릭 한 후 원하는 내용은 무엇입니까?
jcubic 2013-08-28

문제는 먼저 DIV #list 콘텐츠를 어떻게 채우는가입니다.
A. Wolff

답변:


44

나는 항상 이것을 사용하고 완벽하게 작동합니다.

$(document).ready(function(){
        $(function(){
        $('#ideal_form').submit(function(e){
                e.preventDefault();
                var form = $(this);
                var post_url = form.attr('action');
                var post_data = form.serialize();
                $('#loader3', form).html('<img src="../../images/ajax-loader.gif" />       Please wait...');
                $.ajax({
                    type: 'POST',
                    url: post_url, 
                    data: post_data,
                    success: function(msg) {
                        $(form).fadeOut(800, function(){
                            form.html(msg).fadeIn().delay(2000);

                        });
                    }
                });
            });
        });
         });

1
문서에 따라 후속 호출이 지연 delay되기 때문에 제거 할 수도 있다고 생각 합니다.
Domenico De Felice 2015

오 예, 그저 좋은 효과입니다! )
Gucho 칼슘

$('#loader3', form);양식 포함? 이것을 제거 할 수 있습니까? 변경 방법을 사용하고 있기 때문에 제출하지 않습니다.
151291 151291

151291 예, 내 양식의 ID입니다. 필요에 따라 변경하십시오.
Gucho 칼슘

1
formjquery에 래핑되어 있습니다. 왜 그렇게 했습니까 $(form).fadeOut(800, function(){
jack blank

123
$("#mydiv").load(location.href + " #mydiv");

항상 두 번째 # 기호 바로 앞의 공백에 유의 하십시오. 그렇지 않으면 위 코드가 의도 한 DIV 내부에 중첩 된 전체 페이지를 반환합니다. 항상 공간을 두십시오.


9
이렇게하면로드 할 모든 호출에 대해 #mydiv에 #mydiv가 중첩됩니다. Juan이 올바른 버전을 제공합니다.
Mathias

질문에서 알 수 있듯이 이것은 AJAX가 아닙니다.
Gucho Ca

2
반드시 AJAX 일 필요는 없지만 예상되는 사용자 경험을 제공합니다
Dale Clifford

URI에 매개 변수를 포함 할 수 있습니까? 예 : $("#relation-body").load(location.href+" #relation-body?organization_id="+item.id);
Koen B.

1
이는 DOM에 동적 요소를 생성 할 때 jquery 호출에 영향을 미치며 jquery가 실패합니다. 그래서 사용하게 on직접 DIV 내부의 요소를 액세스하는 대신 JQuery와의 이벤트
Thamilhan

64
$("#myDiv").load(location.href+" #myDiv>*","");

10
답변과 함께 설명을 제공하면 다른 사람들이 질문에 대한 좋은 답변이라고 생각하는 이유를 이해하는 데 도움이됩니다.
m4rtin 2014-08-19

21
@ php_coder_3809625는 솔직히 말해서, PECA는 : 후안 후 몇 달을 대답
Shashank Shekhar을

3
@Juan : 정확히 무엇을하는지 설명해 주시겠습니까? 감사
Gaurav Parek

1
모든 어린이를 다시로드하려면 어떻게 조정해야합니까?
Ricky Barnett

id insted 클래스를 사용할 수 있습니까?
TarangP

18

이 메서드가 실행되면의 내용을 검색 location.href하지만 jQuery는 반환 된 문서를 구문 분석하여 divId. 이 요소는 내용과 함께 divId결과 ID ( ) 와 함께 요소에 삽입되고 검색된 나머지 문서는 삭제됩니다.

$ ( "# divId"). load (location.href + "#divId> *", "");

누군가가 이해하는 데 도움이되기를 바랍니다.


7

원하는 것은 데이터를 다시로드하지만 div를 다시로드하지 않는 것입니다.

서버에서 데이터를 가져오고 DIV를 채우려면 Ajax 쿼리를 만들어야합니다.

http://api.jquery.com/jQuery.ajax/


7

실제로 데이터를 가져와야하는 위치를 표시하기에 충분한 정보를 제공하지 않았지만 다른 곳에서 가져와야합니다. 로드시 URL을 지정하고 데이터 매개 변수 또는 콜백 함수를 정의 할 수 있습니다.

$("#getCameraSerialNumbers").click(function () {
    $("#step1Content").load('YourUrl');
});

http://api.jquery.com/load/


5

이 시도

HTML 코드

 <div id="refresh">
    <input type="text" />
    <input type="button" id="click" />
 </div>

jQuery 코드

 <script>
    $('#click').click(function(){
    var div=$('#refresh').html();
    $.ajax({
        url: '/path/to/file.php',
        type: 'POST',
        dataType: 'json',
        data: {param1: 'value1'},
    })
    .done(function(data) {
if(data.success=='ok'){
        $('#refresh').html(div);
}else{
// show errors.
}
    })
    .fail(function() {
        console.log("error");
    })
    .always(function() {
        console.log("complete");
    });
    });

</script>

PHP 페이지 코드 경로 = / path / to / file.php

<?php
   header('Content-Type: application/json');
   $done=true;
   if($done){
       echo json_encode(['success'=>'ok']);
   }
?>

2

데이터를로드하는 위치에서 소스를 추가해야합니다.

예를 들면 :

$("#step1Content").load("yourpage.html");

희망이 당신을 도울 것입니다.


1

주제가 오래되었다는 것을 알고 있지만 Ajax를 변수로 선언 한 다음 함수를 사용하여 원하는 콘텐츠에서 변수를 호출 할 수 있습니다. Ajax와 다른 요소를 지정해야하는 경우 Ajax에있는 것을 호출한다는 점을 명심하십시오.

예:

Var infogen = $.ajax({'your query')};

$("#refresh").click(function(){
  infogen;
  console.log("to verify");
});    

희망이 도움이됩니다

시도하지 않으면 :

$("#refresh").click(function(){
      loca.tion.reload();
      console.log("to verify");
    });    

0
$(document).ready(function() {
var pageRefresh = 5000; //5 s
    setInterval(function() {
        refresh();
    }, pageRefresh);
});

// Functions

function refresh() {
    $('#div1').load(location.href + " #div1");
    $('#div2').load(location.href + " #div2");
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.