Solved

Can jQuery Parse an HTML Table and Load Its Contents To a Database?

Posted on 2010-09-07
8
680 Views
Last Modified: 2012-05-10
Hello experts.  I have a simple ASP.NET page that renders (for purposes of this discussion) a simple table:
<table>
   <tr>
      <td class='fieldA'>1</td><td class='fieldB'>2</td><td class='fieldC'>3</td>
   </tr>
   <tr>
      <td class='fieldA'>3</td><td class='fieldB'>6</td><td class='fieldC'>9</td>
   </tr>
   <tr>
      <td class='fieldA'>5</td><td class='fieldB'>10</td><td class='fieldC'>15</td>
   </tr>
</table>

I'd like to know if it is possible (and if so, how) to use jQuery to do two things:
   1.  Read/parse the contents of the cells, and
   2.  Take the parsed data and insert (or trigger an event which inserts) it into a SQL Server database table.

Assume a button click to initiate the process.  Thanks much all..
0
Comment
Question by:MinnRick
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 14

Expert Comment

by:sam2912
ID: 33624689
Short answer: Yes and Yes.

Note: jQuery is just a JavaScript framework. It can be done using normal JavaScript also.

1.  Read/parse the contents of the cells

- Quite easy to do this. Create a statement that loops through all cells in the table, and serialize the data to whatever format your database stores it in. Use an onclick event on a button to perform this action.

2.  Take the parsed data and insert (or trigger an event which inserts) it into a SQL Server database table.

- You can use a normal form submit to post the data to a backend page/script which does this. You may use hidden fields to pass the generated content from #1 to the server.
0
 
LVL 6

Accepted Solution

by:
DalHorinek earned 500 total points
ID: 33624731
It might work as follows:

var insert_data = new Array();
$("table#the_table").find("tr").each ( function() {
    $(this).find("td").each( function() {
         insert_data.push($(this).html());
   });
});

and then send it using ajax to server side script to store it into database.

0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33625152
Yes,  there are many jquery plugins available for table parsing through jquery
http://www.webdesignbooth.com/15-great-jquery-plugins-for-better-table-manipulation/

by the way, you do not need a specific api's for table elements parsing. You can simply treat it as a html element and give a selector to the jquery
http://www.learningjquery.com/2006/11/how-to-get-anything-you-want-part-1



0
How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

 

Author Comment

by:MinnRick
ID: 33630571
Dal -
Thanks for the parsing code - just what I was looking for for #1.  Would you be able to provide some additional sample code that performs the last bit (send using AJAX..)?  That piece of the process has always been the most obscure to me.  Much appreciated..
0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33630852
if you simply want to submit the comma separated values (in a get request) to the server,

makeAjaxCall(url, escape(insert_data.join(",")));

function makeAjaxCall(url, values)
{
      if (window.XMLHttpRequest)
      {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
      }
      else
      {
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function()
      {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                  document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
      }
      xmlhttp.open("GET", url + "?values=" + values ,true);
      xmlhttp.send();
}
0
 
LVL 6

Assisted Solution

by:DalHorinek
DalHorinek earned 500 total points
ID: 33634477
Or you can use jquery's ajax function.

$.ajax({
   url: "script_which_saves_data.php",
   type: "POST",
   data: "values="+insert_data.join(","),
   success: function(result) { window.alert("stored") },
   error: function (req, errorText, errorThrown) { window.alert("error " + errorText) }
}),


if you want to send it as GET, remove type or change it to GET.

More information about this call u can find here http://api.jquery.com/jQuery.ajax/
0
 

Author Comment

by:MinnRick
ID: 33654426
Thanks all - very helpful.
0
 

Author Closing Comment

by:MinnRick
ID: 33654429
Fully and clearly answered my two questions.  Excellent assistance.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Requirements JQuery 1.6+ HTML CSS Introduction This article was inspired by an EE question (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28372511.html) on how to make a page show some balloons animate up a page…
Introduction Knockoutjs (Knockout) is a JavaScript framework (Model View ViewModel or MVVM framework).   The main ideology behind Knockout is to control from JavaScript how a page looks whilst creating an engaging user experience in the least …
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question