0

I have a javascript table which will add rows dynamically

enter image description here

The code is as follows

<script src="//code.jquery.com/jquery-3.0.0.min.js"></script>
                <script language="javascript">
                    // Add row to the HTML table


                    function addRow() {    
                        var table = document.getElementById('my_table'); //html table
                        var rowCount = table.rows.length; //no. of rows in table
                        var columnCount =  table.rows[0].cells.length; //no. of columns in table          
                        var row = table.insertRow(rowCount); //insert a row            

                        var cell1 = row.insertCell(0); //create a new cell           
                        var element1 = document.createElement("input"); //create a new element           
                        element1.type = "checkbox"; //set the element type 
                        element1.setAttribute('id', 'newCheckbox'); //set the id attribute   
                        element1.setAttribute('checked',true); //set checkbox by default checked  
                        cell1.appendChild(element1); //append element to cell

                        var cell2 = row.insertCell(1);            
                        var element2 = document.createElement("input");            
                        element2.type = "text"; 
                        element2.setAttribute('id', 'newInput'); //set the id attribute
                        element2.setAttribute('name', 'sl'+rowCount);
                        element2.setAttribute('style', 'width: 50px');
                        cell2.appendChild(element2);      

                        var cell3 = row.insertCell(2);            
                        var element3 = document.createElement("input");            
                        element3.type = "textarea"; 
                        element3.setAttribute('rows', '4');
                        element3.setAttribute('cols','40');
                        element3.setAttribute('id', 'newInput'); //set the id attribute
                        element3.setAttribute('name', 'discription'+rowCount);
                        cell3.appendChild(element3);         

                        var cell4 = row.insertCell(3);            
                        var element4 = document.createElement("input");            
                        element4.type = "text"; 
                        element4.setAttribute('id', 'newInput'); //set the id attribute
                        element4.setAttribute('name', 'quantity'+rowCount);
                        cell4.appendChild(element4);


                        var cell5 = row.insertCell(4);            
                        var element5 = document.createElement("input");            
                        element5.type = "text"; 
                        element5.setAttribute('id', 'newInput'); //set the id attribute
                        element5.setAttribute('name', 'price'+rowCount);
                        cell5.appendChild(element5);



                        var cell6 = row.insertCell(5);            
                        var element6 = document.createElement("input");            
                        element6.type = "text"; 
                        element6.setAttribute('id', 'newInput'); //set the id attribute
                        element6.setAttribute('name', 'CST'+rowCount);
                        element6.setAttribute('style', 'width: 50px');
                        cell6.appendChild(element6);


                        var cell7 = row.insertCell(6);
                        var element7 = false;

                        $.ajax({
                            type: "GET",
                            url: '/SalesPropeller/Admin/Sales/goal.jsp',
                            async: false,
                            success: function(data) {
                                 element7 = true;
                            },
                            error: function() {
                                alert("Your error");
                            },

                        });

                       element7.setAttribute('id', 'vat5'); //set the id attribute 
                       element7.setAttribute('name','tax'+rowCount);
                       element7.setAttribute('value','vat5');

                       cell7.appendChild(element7);
}

When i am clicking on "Addrow" button then rows are adding but in the last cell which is "Vat5.5" i need to get the data from another jsp page,so i am using to call the jsp using ajax and display the data, but after writing the ajax code it is not able to display the data.

goal.jsp

<body>
 <div id="welcomeDiv"> WELCOME</div>
</body>

This image is for whether i have path correctly or not.

enter image description here

So my question is how to display the data in the "Vat5.5" cell.I dont know whether i am doing wrong in the ajax call i guess.Any help will be appreciated.

1 Answer 1

2

EDIT

If goal.jsp is outputting the data (WELCOME), It should be

String data = "WELCOME";
out.print(data);

and in JavaScript,

// define a variable outside AJAX call
var jspData;

and in success function

success: function (data){
    jspData = data;   //response
    element7 = true;
}

BEFORE EDIT

supposing your data is a String, get your JSP data somehow and save in a String

String jspData;   // contains your jsp data

// In JSP(HTML)
<input id="jsp-data" type="hidden" value="<%=jspData%>" />

// In JavaScript
var data = document.getElementById('jsp-data').value;

now, you can use that data in JavaScript.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.