Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] jeditable kontakt z mysql
Forum PHP.pl > Forum > Po stronie przeglądarki
tomek_swat
Witam,
Pobieram sobie dane z bazy MySQL, wypisuję ję do odpowiednich kontenerów, klikam edytuję, zatwierdzam !
i tutaj pojawia się problem w jaki sposób te dane są widoczne w skrypcie, który ma uaktualnić odpowiednie dane w bazie?
na stronie pluginu jeditable, nie jest o tym wspomniane, oprócz czegoś takiego:
When submitting change following data will be POST:ed to server: id=elements_id&value=user_edited_content" title="Zobacz w manualu PHP" target="_manual

mój kod
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" debug="true">
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <script src="files/jquery-1.2.6.js" type="text/javascript" charset="utf-8"></script>
  7. <script src="files/jquery.jeditable.js" type="text/javascript" charset="utf-8"></script>
  8.  
  9. <script type="text/javascript" charset="utf-8">
  10.    $(function() {
  11.        $(".edit_area").editable("save.php", {
  12.      indicator : "<img src='files/indicator.gif'>",
  13.      type   : 'textarea',
  14.      onblur : 'submit',
  15.      select : true,
  16.      submit : 'OK',
  17.      cancel : 'Anuluj',
  18.      tooltip : 'Kliknij by edytować'
  19.  });
  20.  });
  21. </script>
  22.    
  23. </head>
  24.    <body>
  25.        <style type="text/css">
  26. #nazwa {
  27.    background-color: #4567ff;
  28.    width: 150px;
  29.    height: 50px;
  30. }
  31. #opis {
  32.    background-color: #FD4141;
  33.    width: 150px;
  34.    height: 50px;
  35. }
  36. #cena {
  37.    background-color: #333333;
  38.    width: 100px;
  39.    height: 25px;
  40. }
  41. </style>
  42.    
  43. <?php
  44.  
  45. echo $_POST['nazwa'];
  46.  
  47. $db = new PDO('mysql:host=localhost;dbname=zsz', 'root', '');
  48. $players = $db -> query('SELECT * FROM produkt LIMIT 2');
  49. while($row = $players->fetch())
  50. {
  51.    echo '<p id="nazwa" class="edit_area">'.$row['NazwaP'].'</p>
  52.            <p id="opis" class="edit_area"> '.$row['KOpisP'].'</p>
  53.            <p id="cena" class="edit_area">'.$row['Cena'].'</p><br />'."\n";
  54. }
  55.  
  56. ?>
  57.    </body>
  58.    </html>

pytanie brzmi w jaki sposób w pliku save.php pobrać wyedytowane dane?
pzdr
paziek
Zrób sobie
  1. <?php
  2. var_dump($_POST);
  3. ?>
zobaczysz tablice z danymi wysyłanymi przez formularz i odpowiednio przystosuj skrypt.
Chyba wiesz, jak pobierać wartości z tablicy asocjacyjnej (hash`ów) ?

Możesz (powinieneś) też zrobić warunek typu
  1. <?php
  2. if($_SERVER['REQUEST_METHOD']==='POST')
  3. ?>
aby wykonywać skrypt aktualizujący dane tylko, jak coś jest wysyłane.
tomek_swat
tak racja, działa teraz tylko mam pytanie odnośnie tego jak do pliku save.php przekazać zawartość
  1. <?php
  2. $row['IdProd']
  3. ?>

żeby klauzula where nie była na sztywno wpisywana bo to bez sensu winksmiley.jpg
save.php
  1. <?php
  2.  
  3. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  4.  
  5. $db = new PDO('mysql:host=localhost;dbname=zsz', 'root', '');
  6. $db->exec("UPDATE produkt SET ".$_POST['id']." = '".$_POST['value']."' WHERE IdProd = 1 ");
  7. print $_POST['value'];
  8.  
  9. }
  10.  
  11. ?>


index.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" debug="true">
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <script src="files/jquery-1.2.6.js" type="text/javascript" charset="utf-8"></script>
  7. <script src="files/jquery.jeditable.js" type="text/javascript" charset="utf-8"></script>
  8.  
  9. <script type="text/javascript" charset="utf-8">
  10.    $(function() {
  11.        $(".edit_area").editable("save.php", {
  12.      indicator : "<img src='files/indicator.gif'>",
  13.      type   : 'textarea',
  14.      onblur : 'submit',
  15.      select : true,
  16.      submit : 'OK',
  17.      cancel : 'Anuluj',
  18.      tooltip : 'Kliknij by edytować'
  19.  });
  20.  });
  21. </script>
  22.    
  23. </head>
  24.    <body>
  25.    
  26. <?php
  27.  
  28. $db = new PDO('mysql:host=localhost;dbname=zsz', 'root', '');
  29. $products = $db -> query('SELECT * FROM produkt LIMIT 2');
  30. while($row = $products->fetch())
  31. {
  32.    echo '
  33.            <p id="'.$row['IdProd'].'">'.$row['IdProd'].'</p>
  34.            <p id="NazwaP" class="edit_area">'.$row['NazwaP'].'</p>
  35.            <p id="KOpisP" class="edit_area"> '.$row['KOpisP'].'</p>
  36.            <p id="Cena" class="edit_area">'.$row['Cena'].'</p><br />'."\n";
  37. }
  38. ?>
  39.    </body>
  40.    </html>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.