2016-11-17 2 views
1

Я пробую что-то очень простое, но не могу заставить его работать, и я понятия не имею, почему. Я пытаюсь загрузить информацию о загрузочных модальных окнах из базы данных, чтобы я мог их редактировать. Моя кнопка выглядитЗагрузка детали из базы данных с помощью ajax

<button onclick="GetUserDetails('.$row['row_id'].')" class="btn btn-warning">Update</button> 

Тогда это PHP часть, которая должна загружаем данные

include("../../misc/database.inc.php"); 


error_reporting(E_ALL); 
ini_set('display_errors', 1); 
$pdo = Database::connect(); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

if(isset($_POST['row_id']) && isset($_POST['row_id']) != "") { 

    $row_id = $_POST['row_id'];     
    $value = $pdo->prepare('SELECT row_id, row_content, row_email FROM excel_table WHERE row_id = ?'); 
    $value->bindParam(1, $id, PDO::PARAM_INT); 
    $value->execute(); 

    $response = array(); 

    if($value->rowCount() > 0){ 
     while ($rs = $value->fetch(PDO::FETCH_ASSOC)) { 
      $response = $row; 

     }     
    } 
    else 
    { 
     $response['status'] = 200; 
     $response['message'] = "Data not found!"; 
    } 
    echo json_encode($response); 
    //var_dump($_POST['row_id']); // return correct id 
} 

На Console-> Сеть я вижу правильный ответ

{ "row_id": «1», «row_content»: «asd», «row_email»: «sad»}

Здесь находится часть js, которая должна загрузка данных

function GetUserDetails(row_id) { 

    $("#row_id").val(row_id); 
    $.post("ajax/readUserDetails.php", { 
      row_id: row_id 
     }, 
     function (data, status) { 
      // PARSE json data 
      var excel_table = JSON.parse(data); 
      // Assing existing values to the modal popup fields 
      $("#row_content").val(excel_table.row_content); 
      $("#row_email").val(excel_table.row_email); 
     } 
    ); 
    // Open modal popup 
    $("#update_user_modal").modal("show"); 
} 

И это мой модальное

<div class="modal fade" id="update_user_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="myModalLabel">Update</h4> 
      </div> 
      <div class="modal-body"> 

       <div class="form-group"> 
        <label for="row_content">Desc</label> 
        <input type="text" id="row_content" placeholder="Описание" class="form-control"/> 
       </div> 

       <div class="form-group"> 
        <label for="row_email">Email</label> 
        <input type="text" id="row_email" placeholder="Email" class="form-control"/> 
       </div> 

      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
       <button type="button" class="btn btn-primary" onclick="UpdateUserDetails()" >Save Changes</button> 
       <input type="hidden" id="row_id"> 
      </div> 
     </div> 
    </div> 
</div> 

Может кто-нибудь сказать мне, почему модальный не заполняется данными?

+0

Да, на кнопку отправить 'ROW_ID: 1' и' ответ { "row_id": "1", "row_content": "ASD", "row_email": "грустный"} ' –

+0

вы отлаживать код? –

+0

Я пробовал то, что знаю. Пока что я вижу, что я отправил и получаю при нажатии кнопки. Что еще я могу отлаживать? –

ответ

2

Хорошо, я думаю, вам нужно показать модальный после асинхронного конца аймакса.

function GetUserDetails(row_id) { 

    $("#row_id").val(row_id); 
    $.post("ajax/readUserDetails.php", { 
      row_id: row_id 
     }, 
     function (data, status) { 
      // PARSE json data 
      var excel_table = JSON.parse(data); 
      // Assing existing values to the modal popup fields 

      //add console.log to make sure you have some value 
      console.log('row_content: ' + excel_table.row_content); 

      $("#row_content").val(excel_table.row_content); 
      $("#row_email").val(excel_table.row_email); 

      // then add another to make sure you update it correctly. 
      console.log('#row_content: ' + $("#row_content").val()); 

      // Open modal popup AFTER YOU UPDATE 
      $("#update_user_modal").modal("show"); 
     } 
    );  
} 
+0

Тот же результат. Ответ массива в консоли правильный: {{row_id: "1", row_content: "asd", row_email: "sad"} ', но modal пуст –

+0

Я не упоминал об этом, но я использую этот учебник, и я меняю его бит, потому что я хочу реализовать pdo ... и т. д.: http://www.itechempires.com/2016/03/php-mysql-crud-create-read-update-delete-operations-using-jquery/ –

+0

Попробуйте console.log, чтобы узнать, что происходит. Но вы должны проверить видео, чтобы узнать, как отлаживать. –

Смежные вопросы