2015-04-06 2 views
0

У меня есть div, который имеет PHP-код (он выводит данные из базы данных). Я сделал функцию AJAX для отправки данных на сервер без перезагрузки страницы, вот код:Перезагрузка div на успех AJAX

var url = "loadsave.php"; 

    $('.create_save').submit(function(event) { 
     if ($('.gss_new_save').val()==""){ 
      event.preventDefault();  
     } else { 
      $.ajax({ 
        type: "POST", 
        url: url, 
        data: $('form').serialize(), 
        success: function() 
        { 

        } 
       }); 
      event.preventDefault(); 
     } 
    }); 

И это другая часть, которая печатает код. Проблема заключается в том, что он печатает код только при обновлении страницы:

<?php 
      $connect = new PDO('mysql:host=localhost;dbname=game','root',''); 
      $cmd = $connect->query('SELECT * FROM saves'); 
      $result = $cmd -> fetchAll(PDO::FETCH_ASSOC); 

      foreach ($result as $res) { 
       ?> 
       <div class="gss_save cls"> 
        <span class="gss_save_text cls"><?php echo $res['name'];?></span> 
        <span class="gss_level">lvl: <?php echo $res['level'];?></span> 
       </div> 
       <?php 
      } 
     ?> 

EDIT: я добавляю: форма:

<form method="post" action="loadsave.php" class="create_save"> 
      <input type="text" class="gss_new_save" name="name"> 
      <input type="submit" style="display:none"> 
     </form> 

и содержание loadsave.php:

<?php 
     if (isset($_POST['name'])) { 
      $nombre = $_POST['name']; 
     } 

     $connect = new PDO('mysql:host=localhost;dbname=game','root',''); 

     $stm = $connect->query("SELECT * FROM saves WHERE `name` ='$nombre'"); 
     $result = $stm->fetchAll(PDO::FETCH_ASSOC); 

     if(count($result)==0){ 
      $cmd = $connect->prepare('INSERT INTO saves (name, level) VALUES (:nombre,"1")'); 
      $cmd -> bindParam(":nombre",$nombre); 
      $cmd -> execute(); 
     } 
    ?> 

Это работает как шарм, но я хочу обновить div, чтобы напечатать только что отправленное содержимое, как я могу это достичь?

+0

'... содержание Я просто sent', посланный откуда, сервер или форма вы отправляете * на сервер? – adeneo

+0

Форма это .. – pedritoalfonso

+0

Вы хотите поместить всю форму в DIV? – adeneo

ответ

2

Предполагая, что сценарий перекликается новое содержание назад:

success:function(response) { 
    $("#divID").html(response); 
} 

loadsave.php должно быть:

<?php 
    if (isset($_POST['name'])) { 
     $nombre = $_POST['name']; 
    } 

    $connect = new PDO('mysql:host=localhost;dbname=game','root',''); 

    $stm = $connect->query("SELECT * FROM saves WHERE `name` ='$nombre'"); 
    $result = $stm->fetchAll(PDO::FETCH_ASSOC); 

    if(count($result)==0){ 
     $cmd = $connect->prepare('INSERT INTO saves (name, level) VALUES (:nombre,"1")'); 
     $cmd -> bindParam(":nombre",$nombre); 
     $cmd -> execute(); 
    } 

    $cmd = $connect->query('SELECT * FROM saves'); 
    $result = $cmd -> fetchAll(PDO::FETCH_ASSOC); 

    foreach ($result as $res) { 
     ?> 
     <div class="gss_save cls"> 
      <span class="gss_save_text cls"><?php echo $res['name'];?></span> 
      <span class="gss_level">lvl: <?php echo $res['level'];?></span> 
     </div> 
     <?php 
    } 

?> 
+0

Я отредактирую другую часть кода к сообщению и попробуйте ответить – pedritoalfonso

+0

dindn't work :( – pedritoalfonso

+0

Пожалуйста, разместите свой HTML-код и обновленный код, который вы использовали. – Barmar

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