Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jQuery Drag & Drop + PHP
Forum PHP.pl > Forum > Po stronie przeglądarki
nait
Witam!

W ramach edukacji robię sobie mały skrypcik do uploadu i edycji galerii, który wykorzystam do mojej stronki.
Bardzo spodobało mi się rozwiązanie drag & drop z wykorzystaniem jQuery (http://www.webresourcesdepot.com/dynamic-dragn-drop-with-jquery-and-php/), aczkolwiek mam problemy z dostosowaniem tego do swoich potrzeb.
Nie wiem jak zrobić aby zapisywało kolejność dopiero po wciśnięciu inputa, który sobie dodałem, zamiast dynamicznego zapisu. Kombinowałem kombinowałem ale nic mi z tego nie wyszlo ^^.. Prosiłbym o pomoc

Mój kod:
index.php
  1. <?php require("db.php"); ?>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>jQuery Dynamic Drag'n Drop</title>
  7. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  8. <script type="text/javascript" src="jquery-ui-1.7.1.custom.min.js"></script>
  9.  
  10.  
  11.  
  12. html, body {
  13. height:100%;
  14. }
  15. body {
  16. font-family: Arial, Helvetica, sans-serif;
  17. font-size: 16px;
  18. }
  19. #contentLeft {
  20. width: 1000px;
  21. float: left;
  22. border: 1px black solid;
  23.  
  24. }
  25. #contentLeft div{
  26. height: 300px;
  27. width: 300px;
  28. float: left;
  29. background: #ebe4d7;
  30. border:1px green solid;
  31. }
  32. #contentLeft input {
  33. clear: both;
  34. float: left;
  35. }
  36. #contentLeft img{
  37. width: 141px;
  38. height: 127px;
  39. border: 1px red solid;
  40. float: left;
  41. }
  42.  
  43. #contentRight {
  44. clear: left;
  45. float: left;
  46. width: 400px;
  47. height: 650px
  48. padding:10px;
  49. background-color:#336600;
  50. color:#FFFFFF;
  51. }
  52.  
  53.  
  54.  
  55. <script type="text/javascript">
  56. $(document).ready(function(){
  57. $(function() {
  58. $("#contentLeft").sortable({ opacity: 0.6, cursor: 'move'
  59.  
  60.  
  61. , update: function() {
  62. var order = $(this).sortable("serialize") + '&action=updated_order';
  63. $.post("updateDB.php", order, function(theResponse){
  64. $("#contentRight").html(theResponse);
  65. });
  66. }
  67.  
  68.  
  69. });
  70. });
  71. });
  72.  
  73. </head>
  74.  
  75. <div id="contentLeft">
  76. <?php
  77. $thumbs = "uploaded/thumbs/";
  78. $query = "SELECT * FROM records ORDER BY recordListingID ASC";
  79. $result = mysql_query($query);
  80. $col = 1;
  81.  
  82. while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  83. ?>
  84. <div id="order_array_<?php echo $row['recordID'];?>">
  85. <img src="<?php echo $thumbs . $row['recordID'] ?>.jpg" alt="" />
  86. <form method="post" action="updateDB.php">
  87. <input type="text" name="description" value="<?php echo $row['recordText'] ?>" />
  88. </form>
  89. </div>
  90. <?php
  91. }
  92. ?>
  93.  
  94. </div>
  95. <form method="post" action="updateDB.php">
  96. <input type="submit" name="send" value="ZAPISZ" />
  97. </form>
  98.  
  99. <div id="contentRight">
  100. <p>Array will be displayed here.</p>
  101. <p>&nbsp; </p>
  102. </div>
  103.  
  104. </body>
  105. </html>


updateDB.php
  1. <?php
  2. require("db.php");
  3.  
  4. $action = mysql_real_escape_string($_POST['action']);
  5. $update_order = $_POST['order_array'];
  6.  
  7. echo "<pre>";
  8. print_r($_POST);
  9. echo "</pre>";
  10.  
  11. if ($action == "updated_order"){
  12. $listingCounter = 1;
  13. foreach ($update_order as $recordIDValue) {
  14.  
  15. $query = "UPDATE records SET recordListingID = " . $listingCounter . " WHERE recordID = " . $recordIDValue;
  16. mysql_query($query) or die('Error, insert query failed');
  17. $listingCounter = $listingCounter + 1;
  18. }
  19.  
  20. echo '<pre>';
  21. print_r($update_order);
  22. echo '</pre>';
  23. echo 'If you refresh the page, you will see that records will stay just as you modified.';
  24. }
  25. ?>
Kartofelek
Możesz przecież np zrobić jquery each na elementach listy czy co tam masz, i za pomocą tej metody zbudować sobie array, lub string i przeslac to do skryptu.
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.