Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt LIVE EDIT
Forum PHP.pl > Forum > Gotowe rozwiązania
martinii007
Posiadam następujący problem:
Znalazłem w necie bardzo fajny skrypt, który pozwala samemu edytować dane, które są zczytywane z bazy bez buttona w postaci live-edit, jednakże mam problem ponieważ nie obsługuje znacznika Textarea, jedynie INPUT.

Główny PLIK:

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
  2. <script type="text/javascript">
  3. // JQUERY: Plugin "autoSumbit"
  4. (function($) {
  5. $.fn.autoSubmit = function(options) {
  6. return $.each(this, function() {
  7. // VARIABLES: Input-specific
  8. var input = $(this);
  9. var column = input.attr('name');
  10.  
  11. // VARIABLES: Form-specific
  12. var form = input.parents('form');
  13. var method = form.attr('method');
  14. var action = form.attr('action');
  15.  
  16. // VARIABLES: Where to update in database
  17. var where_val = form.find('#where').val();
  18. var where_col = form.find('#where').attr('name');
  19.  
  20. // ONBLUR: Dynamic value send through Ajax
  21. input.bind('blur', function(event) {
  22. // Get latest value
  23. var value = input.val();
  24. // AJAX: Send values
  25. $.ajax({
  26. url: action,
  27. type: method,
  28. data: {
  29. val: value,
  30. col: column,
  31. w_col: where_col,
  32. w_val: where_val
  33. },
  34. cache: false,
  35. timeout: 10000,
  36. success: function(data) {
  37. // Alert if update failed
  38. if (data) {
  39. alert(data);
  40. }
  41. // Load output into a P
  42. else {
  43. $('#notice').text('Updated');
  44. $('#notice').fadeOut().fadeIn();
  45. }
  46. }
  47. });
  48. // Prevent normal submission of form
  49. return false;
  50. })
  51. });
  52. }
  53. })(jQuery);
  54. // JQUERY: Run .autoSubmit() on all INPUT fields within form
  55. $(function(){
  56. $('#ajax-form INPUT').autoSubmit();
  57. });
  58.  
  59.  
  60. <?php
  61.  
  62. // DATABASE: Connection variables
  63. $db_host = "a";
  64. $db_name = "b";
  65. $db_username = "c";
  66. $db_password = "d";
  67.  
  68. // DATABASE: Try to connect
  69. if (!$db_connect = mysql_connect($db_host, $db_username, $db_password))
  70. die('Unable to connect to MySQL.');
  71. if (!$db_select = mysql_select_db($db_name, $db_connect))
  72. die('Unable to select database');
  73.  
  74. /*
  75.  * DATABASE QUERY
  76.  */
  77.  
  78. // DATABASE: Get current row
  79. $result = mysql_query("SELECT * FROM wydarzenia WHERE id=1");
  80. $row = mysql_fetch_assoc($result);
  81.  
  82. ?>
  83. <form id="ajax-form" class="autosubmit" method="POST" action="./ajax-update.php">
  84. <fieldset>
  85. <legend>Update user information</legend>
  86.  
  87. <label>Company:</label>
  88. <input name="title" value="<?php echo $row['title'] ?>" />
  89.  
  90. <label>Name:</label>
  91. <input name="text" value="<?php echo $row['text'] ?>" />
  92.  
  93. <label>E-mail:</label>
  94. <textarea name="text" value="<?php echo $row['text'] ?>" /></textarea>
  95.  
  96.  
  97. <input id="where" type="hidden" name="id" value="<?php echo $row['id'] ?>" />
  98. </fieldset>
  99. </form>
  100.  
  101. <p id="notice"></p>
  102.  
  103. </body>
  104. </html>




PLIK z UPDATEM:



  1. <?php
  2.  
  3. /*
  4.  * DATABASE CONNECTION
  5.  */
  6.  
  7. // DATABASE: Connection variables
  8. $db_host = "a";
  9. $db_name = "b";
  10. $db_username = "c";
  11. $db_password = "d";
  12.  
  13. // DATABASE: Try to connect
  14. if (!$db_connect = mysql_connect($db_host, $db_username, $db_password))
  15. die('Unable to connect to MySQL.');
  16. if (!$db_select = mysql_select_db($db_name, $db_connect))
  17. die('Unable to select database');
  18.  
  19. // DATABASE: Clean data before use
  20. function clean($value)
  21. {
  22. return mysql_real_escape_string($value);
  23. }
  24.  
  25. /*
  26.  * FORM PARSING
  27.  */
  28.  
  29. // FORM: Variables were posted
  30. if (count($_POST))
  31. {
  32. // Prepare form variables for database
  33. foreach($_POST as $column => $value)
  34. ${$column} = clean($value);
  35.  
  36. // Perform MySQL UPDATE
  37. $result = mysql_query("UPDATE wydarzenia SET ".$col."='".$val."'
  38. WHERE ".$w_col."='".$w_val."'")
  39. or die ('Unable to update row.');
  40. }
  41.  
  42. ?>






Zmian trzeba dokonać w skrypcie jQuery w pliku głównym, ale nie jestem na tyle zaawansowany ażeby tego dokonać :/ Zapewne to jest 5 min. roboty, dlatego czekam na wasze podpowiedzi smile.gif
Turson
  1. <textarea name="text" value="<?php echo $row['text'] ?>" /></textarea>

Wartość w textarea podaje się między znacznikami <textarea>o właśnie tutaj</textarea>
martinii007
Ale głupi błąd, a już raz napotkałem się z tym problemem, w każdym bądź razie dzięki smile.gif
Temat do zamknięcia.
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-2024 Invision Power Services, Inc.