{"id":1023,"date":"2011-07-19T10:07:49","date_gmt":"2011-07-19T10:07:49","guid":{"rendered":"http:\/\/premiumcoding.com\/?p=1023"},"modified":"2021-03-11T14:20:09","modified_gmt":"2021-03-11T14:20:09","slug":"jquery-sort-saving-database","status":"publish","type":"post","link":"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/","title":{"rendered":"jQuery Sort and saving to database"},"content":{"rendered":"<div class=\"buttonshort\"><div class=\"buttondark\"><div class=\"buttonleft\"><a  href=\"http:\/\/premiumcoding.com\/tut\/jquery_sort\/index.php\" target=\"_blank\">DEMO<\/a><\/div><\/div><\/div>\n<p>&nbsp;<\/p>\n<p>When we used to <strong>sort elements<\/strong> we had to refresh web page for every change. Since<strong> javasrcipt and jQuery<\/strong> we can now do that dynamiclly. In this tutorial I will show you just how to do that. It is even more useful when you combine with it <strong>databases<\/strong> in which <strong>order of elements<\/strong> is crucial. In our example following table with name jquerysort will be used:<\/p>\n<table style=\"border: 1px solid #000;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody style=\"border: 1px solid #000;\">\n<tr>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"45\"><strong>id<\/strong><\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"217\"><strong>text<\/strong><\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"57\"><strong>sort<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"45\">1<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"217\">some text<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"57\">1<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"45\">2<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"217\">some text<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"57\">2<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"45\">3<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"217\">some txt\u2026.<\/td>\n<td style=\"border: 1px solid #000;\" valign=\"top\" width=\"57\">3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>We will use two files. First file will call the second one each time element is moved. Entries in second file update MySql table each time that happens. First file will be named sort.php.<\/p>\n<p>First thing we have to do is include links to <strong>jQuery in &lt; head &gt; tag<\/strong>.<\/p>\n<div class=\"pmc-code\"><br \/>\n<script type=\"text\/javascript\" src=\"http:\/\/127.0.0.1\/PROJEKTI\/jquery_sort\/jquery-1.4.4.min.js\"><\/script><br \/>\n<script type=\"text\/javascript\" src=\"http:\/\/127.0.0.1\/PROJEKTI\/jquery_sort\/jquery-ui-1.7.1.custom.min.js\"><\/script><br \/>\n<\/div>\n<div style=\"text-align: center;\">[amazon_carousel widget_type=&#8221;SearchAndAdd&#8221; width=600&#8243; height=&#8221;200&#8243; title=&#8221;&#8221; market_place=&#8221;US&#8221; shuffle_products=&#8221;True&#8221; show_border=&#8221;False&#8221; keywords=&#8221;jquery&#8221; browse_node=&#8221;&#8221; search_index=&#8221;Books&#8221; \/]<\/div>\n<p>In head part of html document we also have to include call to <strong>jQuery function<\/strong> that happens each time element is moved.<\/p>\n<p><div class=\"pmc-code\"><br \/>\n<script type=\"text\/javascript\">\njQuery(document).ready(function(){  \n\tjQuery(function() {\n\t\tvar path = \"http:\/\/premiumcoding.com\/tut\/jquery_sort\/updateDB.php\"; \n\t\tjQuery(\"#sortLeft ul\").sortable({ opacity: 0.6, cursor: 'move', update: function() { \n\t\t\tvar order = jQuery(this).sortable(\"serialize\") + '&#038;action=updateDbSortRecord'; \n\t\t\tjQuery.post(\"UpdateDB\", order, function(theResponse){ \n\t\t\t\tjQuery(\"#sortRight\").html(theResponse); });  \n\t\t\t}  \n\t\t}); \n\t}); \n});\n<\/script><br \/>\n<\/div><br \/>\nWhat we need now is a <strong>connection with our database<\/strong> so we can display results.<br \/>\n<div class=\"pmc-code\"><br \/>\n$connection = mysql_connect(&#8216;localhost&#8217;, &#8216;username&#8217; , &#8216;password&#8217;) or die(mysql_error());<br \/>\n$selection = mysql_select_db(&#8216;db name&#8217;, $connection);<br \/>\n<\/div><br \/>\nGet the results from database so they are available for sort that we are going to perform later on.<br \/>\n<div class=\"pmc-code\"><br \/>\n&lt; ?php $query = &#8220;SELECT * FROM jquerysort ORDER BY sort ASC&#8221;; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { ?&gt;<\/p>\n<ul>\n<li id=\"recordsArray_&lt; ?php echo $row['id']; ?&gt;\">&lt; ?php echo $row[&#8216;id&#8217;] . &#8220;. &#8221; . $row[&#8216;text&#8217;];?&gt;<\/li>\n<\/ul>\n<p>&lt; ?php } ?&gt;<\/p>\n<p><\/div><br \/>\nFinally we can <strong>display the table<\/strong>. Tag\u00a0<strong>&lt; li id=ID&#8230;&gt;<\/strong> is crucial since we will write <strong>entry ID<\/strong> into it. Without it there is no way to know what to sort.<\/p>\n<p><div class=\"pmc-code\"><br \/>\nid=&#8221;recordsArray_&lt; ?php echo $row[&#8216;id&#8217;]; ?&gt;&#8221;;<\/p>\n<p><\/div><br \/>\nFirst file is now finished and it is time to code up the second one. We will name it<strong> UpdateDB.php<\/strong> (make sure name is the <strong>same as in jQuery call<\/strong>). First we will write in parameters that we got in previous steps.<br \/>\n<div class=\"pmc-code\"><br \/>\n$action = mysql_real_escape_string($_POST[&#8216;action&#8217;]);<br \/>\n$updateRecordsArray = $_POST[&#8216;recordsArray&#8217;];<br \/>\n<\/div><br \/>\nWe can now <strong>update our database<\/strong> with new values. A loop will<strong> iterate through all acquired values<\/strong> from first file and update our table. If there is any errors while updating we will fetch them.<br \/>\n<div class=\"pmc-code\"><br \/>\nforeach ($updateRecordsArray as $recordIDValue) {<br \/>\n$query = &#8220;UPDATE jquerysort SET sort = &#8220;.$listingCounter.&#8221; WHERE Id=&#8221;.$recordIDValue;<br \/>\nmysql_query($query) or die(&#8216;Error, insert query failed&#8217;);<br \/>\n$listingCounter = $listingCounter + 1;<br \/>\n}<br \/>\n<\/div><br \/>\nAs a final step we will<strong> display a result<\/strong> in right column.<br \/>\n<div class=\"pmc-code\"><br \/>\necho &#8216;<\/p>\n<div>&#8216;;<br \/>\n\/\/Write new array<br \/>\nprint_r($updateRecordsArray);<br \/>\necho &#8216;<\/div>\n<p>&#8216;;<br \/>\necho &#8216;Even if page is refreshed settings will remain since they are written in our database.&#8217;;<\/p>\n<p><\/div><\/p>\n<p>For more advanced guides check out\u00a0<a href=\"https:\/\/learnyhub.com\/\" rel=\"noreferrer\">learnyhub.com<\/a>.<\/p>\n<p>Thank you for reading this tutorial. Similar sorting is implemented in our Wordress Accordion Banner plugin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; When we used to sort elements we had to refresh web page for every change. Since javasrcipt and jQuery we can now do that dynamiclly. In this tutorial I will show you just how to do that. It is even more useful when you combine with it databases in which order of elements is &#8230;<\/p>\n","protected":false},"author":1,"featured_media":1077,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[178],"tags":[182,183,184,185],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.6.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>jQuery Sort and saving to database - PremiumCoding<\/title>\n<meta name=\"description\" content=\"&nbsp; When we used to sort elements we had to refresh web page for every change. Since javasrcipt and jQuery we can now do that dynamiclly. In this\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"jQuery Sort and saving to database - PremiumCoding\" \/>\n<meta property=\"og:description\" content=\"&nbsp; When we used to sort elements we had to refresh web page for every change. Since javasrcipt and jQuery we can now do that dynamiclly. In this\" \/>\n<meta property=\"og:url\" content=\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/\" \/>\n<meta property=\"og:site_name\" content=\"PremiumCoding\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-19T10:07:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-11T14:20:09+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"3 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/premiumcoding.com\/#organization\",\"name\":\"PremiumCoding\",\"url\":\"https:\/\/premiumcoding.com\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/premiumcoding.com\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/premiumcoding.com\/wp-content\/uploads\/2013\/12\/premiumcoding-wordpress-themes-logo@2x.png\",\"width\":400,\"height\":134,\"caption\":\"PremiumCoding\"},\"image\":{\"@id\":\"https:\/\/premiumcoding.com\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/premiumcoding.com\/#website\",\"url\":\"https:\/\/premiumcoding.com\/\",\"name\":\"PremiumCoding\",\"description\":\"WordPress Themes, Tutorials &amp; Articles\",\"publisher\":{\"@id\":\"https:\/\/premiumcoding.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/premiumcoding.com\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#webpage\",\"url\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/\",\"name\":\"jQuery Sort and saving to database - PremiumCoding\",\"isPartOf\":{\"@id\":\"https:\/\/premiumcoding.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#primaryimage\"},\"datePublished\":\"2011-07-19T10:07:49+00:00\",\"dateModified\":\"2021-03-11T14:20:09+00:00\",\"description\":\"&nbsp; When we used to sort elements we had to refresh web page for every change. Since javasrcipt and jQuery we can now do that dynamiclly. In this\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#webpage\"},\"author\":{\"@id\":\"https:\/\/premiumcoding.com\/#\/schema\/person\/e82e4a7d2166758ae7c30a69e651b04c\"},\"headline\":\"jQuery Sort and saving to database\",\"datePublished\":\"2011-07-19T10:07:49+00:00\",\"dateModified\":\"2021-03-11T14:20:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/premiumcoding.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#primaryimage\"},\"keywords\":\"jquers database,jquery sort,jquery sort database table,jquery sort elements and save to db\",\"articleSection\":\"Tutorials\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/premiumcoding.com\/jquery-sort-saving-database\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/premiumcoding.com\/#\/schema\/person\/e82e4a7d2166758ae7c30a69e651b04c\",\"name\":\"Ales\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/premiumcoding.com\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5b70a6c161b959988486ba65abb4653?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Ales\"},\"sameAs\":[\"https:\/\/premiumcoding.com\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/posts\/1023"}],"collection":[{"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/comments?post=1023"}],"version-history":[{"count":2,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/posts\/1023\/revisions"}],"predecessor-version":[{"id":2184105,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/posts\/1023\/revisions\/2184105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/media\/1077"}],"wp:attachment":[{"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/media?parent=1023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/categories?post=1023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/premiumcoding.com\/wp-json\/wp\/v2\/tags?post=1023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}