Aktualisieren / laden Sie den Inhalt in Div mit jquery / ajax neu

79

Ich möchte ein Div auf Knopfdruck neu laden. Ich möchte nicht die ganze Seite neu laden.

Hier ist mein Code:

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>

Beim Klicken auf die <input type="button" id="getCameraSerialNumbers" value="Capture Again">Schaltfläche <div id="list">....</div>sollte a neu geladen werden, ohne die ganze Seite zu laden oder zu aktualisieren.

Unten ist die Jquery, die ich ausprobiert habe, aber nicht funktioniert: -

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

Bitte vorschlagen.

Hier ist der DIV auf meiner Seite, der Bilder und Seriennummern einiger Produkte enthält ... Der zum ersten Mal auf der Seite aus der Datenbank stammt. Wenn der Benutzer jedoch auf ein Problem stößt, klickt er auf die Schaltfläche "Erneut erfassen", <input type="button" id="getCameraSerialNumbers" value="Capture Again">um diese Informationen erneut zu laden.

Der HTML-Code von Div: -

<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>

Durch Klicken auf die <input type="button" id="getCameraSerialNumbers" value="Capture Again" class="disabled" />Schaltfläche sollten die darin enthaltenen Informationen <div id="list">... </div> erneut geladen werden.

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

UID
quelle
1
Hier gibt es bei weitem nicht genug Details. Woher versuchst du, Inhalte zu bekommen? Welchen Code hast du dafür? Gibt es irgendwelche Fehler? Warum funktioniert es nicht?
Rory McCrossan
Was möchten Sie genau nachladen? Müssen Sie die Datenbank aufrufen?
Alvaro
Was ist in # step1Content enthalten und wie soll es nach dem Klicken auf die Schaltfläche aussehen?
Jcubic
Die Frage ist, wie Sie zuerst den Inhalt der DIV # -Liste füllen.
A. Wolff

Antworten:

43

Ich benutze das immer, funktioniert perfekt.

$(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);

                        });
                    }
                });
            });
        });
         });
Gucho Ca.
quelle
1
Ich denke, Sie können auch das entfernen, delayda es laut Dokumentation nachfolgende Anrufe verzögert .
Domenico De Felice
Oh ja, es ist nur ein schöner Effekt! ;)
Gucho Ca
$('#loader3', form);enthält Form? kann ich das entfernen? weil ich change methed benutze, nicht einreichen.
151291
151291 Ja, es ist die ID meines Formulars. Ändern Sie es nach Ihren Wünschen.
Gucho Ca
1
formist eine in jquery eingewickelte, also warum hast du getan $(form).fadeOut(800, function(){
Jack Blank
121
$("#mydiv").load(location.href + " #mydiv");

Beachten Sie immer das Leerzeichen kurz vor dem zweiten # -Zeichen, da sonst der obige Code die gesamte Seite zurückgibt, die in Ihrem beabsichtigten DIV verschachtelt ist. Platz immer platzieren.

Peca
quelle
9
Dies verschachtelt ein #mydiv in einem #mydiv für jeden zu ladenden Aufruf. Die richtige Version wird von Juan zur Verfügung gestellt.
Mathias
Dies ist nicht AJAX, wie die Fragen sagen.
Gucho Ca
2
Es ist nicht unbedingt AJAX, bietet aber die erwartete Benutzererfahrung
Dale Clifford
Ist es möglich, Parameter in den Uri aufzunehmen? Zum Beispiel: $("#relation-body").load(location.href+" #relation-body?organization_id="+item.id);
Koen B.
Dies würde sich auf JQuery-Aufrufe auswirken, da dynamische Elemente im DOM erstellt werden. JQuery schlägt fehl. Nutzen Sie also onevent in jquery, anstatt direkt auf das Element in diesem div
zuzugreifen
62
$("#myDiv").load(location.href+" #myDiv>*","");
Juan Manuel PRONEXO De Castro
quelle
10
Bitte geben Sie Erklärungen zu Ihrer Antwort an, damit andere verstehen, warum Sie der Meinung sind, dass dies eine gute Antwort auf die Frage ist.
m4rtin
21
@ php_coder_3809625 Um ehrlich zu sein, antwortete Peca ein paar Monate nach Juan :)
Shekhar
3
@ Juan: Könntest du bitte erklären, was es genau macht? danke
Gaurav Parek
1
Wie würde ich dies anpassen, um auch alle Kinder neu zu laden?
Ricky Barnett
Kann ich eine Klasse mit ID verwenden?
TarangP
18

Wenn diese Methode ausgeführt wird, wird der Inhalt von abgerufen location.href, aber dann analysiert jQuery das zurückgegebene Dokument, um das Element mit zu finden divId. Dieses Element wird zusammen mit seinem Inhalt mit einer ID ( divId) des Ergebnisses in das Element eingefügt , und der Rest des abgerufenen Dokuments wird verworfen.

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

Ich hoffe, dies kann jemandem helfen, es zu verstehen

Sachin Sudhakar Sonawane
quelle
7

Was Sie wollen, ist, die Daten erneut zu laden, aber das div nicht neu zu laden.

Sie müssen eine Ajax-Abfrage durchführen, um Daten vom Server abzurufen und den DIV zu füllen.

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


quelle
7

Obwohl Sie nicht genügend Informationen angegeben haben, um tatsächlich anzugeben, woher Sie Daten abrufen sollen, müssen Sie sie von irgendwoher abrufen. Sie können die URL beim Laden angeben sowie Datenparameter oder eine Rückruffunktion definieren.

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

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

David L.
quelle
5

Versuche dies

HTML Quelltext

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

jQuery-Code

 <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-Seitencode Pfad = / Pfad / zu / Datei.php

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

Sie müssen die Quelle hinzufügen, von der Sie die Daten laden.

Zum Beispiel:

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

Hoffe es wird dir helfen.

Shubham Kumar
quelle
1

Ich weiß, dass das Thema alt ist, aber Sie können Ajax als Variable deklarieren und dann eine Funktion verwenden, um die Variable für den gewünschten Inhalt aufzurufen. Denken Sie daran, dass Sie das aufrufen, was Sie im Ajax haben, wenn Sie andere Elemente als das Ajax möchten, müssen Sie es angeben.

Beispiel:

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

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

Hoffnung hilft

Wenn nicht, versuchen Sie:

$("#refresh").click(function(){
      loca.tion.reload();
      console.log("to verify");
    });    
Elneto
quelle
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");
}
gjerich
quelle