2015-05-01 2 views
0


У меня в настоящее время проблема с ajax или загрузка фрагмента страницы с помощью $ ('# id'). Load ("page.php #id"). То, что я пытаюсь сделать, это галерея изображений.
Чтобы разрешить пользователю обновлять имя альбома, я создал форму с кнопкой, вызывающей функцию ajax. Эта функция ajax отправляет данные в столбце типа «$ _POST ['oldAlbumName'] = 'newAlbumName'" (более или менее). К сожалению, ничего не происходит.Ajax или загрузка фрагмента страницы не работает

Я не знаю, исходит ли это от ajax или от перегрузки пролета. Вот мой PHP:

<?php 
try 
{ 
    $bdd = new PDO('mysql:host=localhost;dbname=bd;charset=utf8', 'root', ''); 
    $reponse = $bdd->query('SELECT DISTINCT album AS A from galerie'); 
    while($donnees = $reponse->fetch()) 
    { 
     echo $donnees['A']."<br/>"; 
     if(isset($_POST[$donnees['A']."_text"])) 
     { 
      echo $_POST[$donnees['A']."_text"]."<br/>"; 
      echo $donnees['A']."_text<br/>"; 
      $bdd->query("UPDATE galerie SET album ='".$_POST[$donnees['A']."_text"]."' WHERE album='".$donnees['A']."_text'"); 
     } 
    } 
} 

catch(Exception $e) 
{ 
    echo "Impossible de se connecter à la BDD<br/>"; 
}?> 

(эхо только печатает "Rouge", это нормально)

А вот мой JS:

function renommageAjax(textID) 
    { 
     var splitted = textID.split("_"); 
     var champ = splitted[0]; 
     $.ajax({ 
      type: "POST", 
      url: "Galerie.php", 
      data: { 
      textID: $("#"+textID).val(), 
      }, 
      dataType: "text", 
      success: function(data) { 
      alert(textID); 
      $('#'+champ+'_name').html($("#"+textID).val()); 
      $('#updateSpan').load("Galerie.php #updateSpan"); 

      } 
     });   
    } 

(Отпечатки оповещения "Rouge_text" в моем случае, это также нормально)

Конечно, мой php находится между двумя пролетами с идентификатором «updateSpan», на странице «Galerie.php».

Где моя ошибка?

Спасибо!

+0

Вы собираетесь должны быть немного более конкретными, чем «ничего не происходит». И предоставленный вами оператор ajax отправляет 'textID', а не' oldAlbumName'. –

+0

Ничего не происходит, я имею в виду, что моя база данных не обновляется. О «oldAlbumName», Это должно было объяснить, что я хотел сделать. Должен ли я попытаться получить $ _POST ['textID'] вместо $ _POST ['Rouge_text'] здесь? – Raphallal

+0

Кроме того, мы никогда не заходим в if (isset ($ _ POST [$ donnees ['A']. "_ Text"])) ... Я не понимаю, почему. – Raphallal

ответ

0

Благодаря Джош, я понял, как решить мою проблему:

Я изменил мой JS (так что мой PHP тоже), поэтому я отправить два значения: старый и новый.

Новый PHP выглядит следующим образом:

<?php 

if(isset($_POST['textOld'])) 
{ 
    try 
    { 
     $bdd = new PDO('mysql:host=localhost;dbname=bd;charset=utf8', 'root', ''); 
     $reponse = $bdd->query('SELECT DISTINCT album AS A from galerie'); 

     while($donnees = $reponse->fetch()) 
     { 

      if($_POST['textOld'] == $donnees['A']) 
      { 
       $bdd->query("UPDATE galerie SET album ='".$_POST['textNew']."' WHERE album='".$_POST['textOld']."'"); 
      } 

     } 

     $reponse->closeCursor(); 
    } 

    catch(Exception $e) 
    { 
     echo "Impossible de se connecter à la BDD<br/>"; 
    } 
} 
?> 

И новые JS:

function renommageAjax(textID) 
{ 
var splitted = textID.split("_"); 
var champ = splitted[0]; 
    $.ajax({ 
     type: "POST", 
     url: "Galerie.php", 
     data: { 
      textOld: champ, 
      textNew: $("#"+textID).val() 
     }, 
     dataType: "text", 
     success: function(data) { 
      $('#'+champ+'_name').html($("#"+textID).val()); 
      $('#updateSpan').load("Galerie.php #updateSpan"); 

     } 
    }); 
} 
Смежные вопросы