2017-06-23 4 views
0

Bevor ich diese Frage gestellt habe, habe ich hier gesucht und verschiedene Antworten erhalten, und ich denke, es passt nicht zu meinen Bedürfnissen. Ich habe eine Schaltfläche, wenn geklickt haben, wird die folgende js SkriptJSON-Daten werden nicht mit .html() angezeigt

$("#update-details-btn").on('click', function() { 
     $.ajax({ 
      type: 'post', 
      dataType: 'json', 
      data: "confirmation="+get_data, 
      url: '../for_update_details', 
      success: function(data) 
      { 
       console.log(data); 
       $('div#update_details_body').html(data.results); 

und dies ist der Behälter

<div id="update_details_body" class="modal-body"></div> 

die Daten stammen aus einer PHP-Funktion

$data['results'] = NULL; 
$results = "<div class='form-group'>"; 
$results .= "<label for='document-type' class='col-sm-4 control-label'>Category</label>"; 
$results .= "</div>"; 
$data['results'] = $results; 
echo json_encode($data); 

laufen Wie Sie sehen können Von der js habe ich ein console.log erstellt, das genau das ausgibt, was die data.results enthalten, aber wenn ich .html() in den Container lege, passiert nichts. Was könnte der Schuldige hier sein? Ich mache diese Kodierung zu anderen Funktionen, aber nur dieser Abschnitt funktioniert nicht

+0

Möglicherweise müssen Sie 'JSON.parse (Daten)' vor 'console.log'. – 31piy

+0

keine Notwendigkeit zu analysieren, er hat 'dataType: 'json',' – guradio

+0

Sind Sie sicher, Daten sind nicht verbindlich zu Ihrem div, ich denke, das Problem ist der Klasse = "modal-body" es irgendwo versteckt – Rahul

Antwort

1

Code:

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#update-details-btn").on('click', function() { 
     alert("inside"); 
     $.ajax({ 
      type: 'post', 
      dataType: 'json', 
      url: 'php_file.php', 
      success: function(data) 
      { 
       console.log(data); 
       $('div#update_details_body').html(data.results); 
      } 
     }); 
    }); 
}); 
</script> 
</head> 
<style> 
.modal-body 
{ 
    margin: 0px; 
    padding: 0px; 
    width: 100px; 
    height: 100px; 
} 
</style> 
<body> 
<div id="update_details_body" class="modal-body"></div> 
<input type="button" id="update-details-btn" name="button" value="button"> 
</body> 
</html> 

php Code nicht Chnage

0

Fügen Sie dies in Erfolg funtion hinzu. Hoffe es hilft!

+0

keine Notwendigkeit zu analysieren er hat 'dataType: 'json',' – guradio

0

Von Ihrem Beispiel, ich glaube, Sie müssen nicht in json Daten analysieren. einfach echo $results und binden in Ajax-Erfolg

$("#update-details-btn").on('click', function() { 
     $.ajax({ 
      type: 'post', 

      data: "confirmation="+get_data, 
      url: '../for_update_details', 
      success: function(data) 
      { 
       console.log(data); 
       $('div#update_details_body').html(data); 

PHP:

$data['results'] = NULL; 
$results = "<div class='form-group'>"; 
$results .= "<label for='document-type' class='col-sm-4 control-label'>Category</label>"; 
$results .= "</div>"; 
echo $results; 
+0

Hallo, ich werde das versuchen –

0

die folgende Zeile vor dem Echo json_encode hinzufügen:

header('Content-Type: application/json'); 
echo json_encode($data); 
Verwandte Themen