Я не получаю значения во второй строке, если добавить вторую строку, и я выбираю значение из раскрывающегося списка и будет изменяться в первой строке, а не во второй строке
оценка. jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="est.css">
<link href='https://fonts.googleapis.com/css?family=Allerta Stencil' rel='stylesheet'>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script>
$('form').change(function(){
$('form').submit();
});
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
// var row = table.insertRow(1);
var row = table.insertRow(rowCount);
var colCount = table.rows[1].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
case "text":
newcell.childNodes[0].value = "";
break;
}
}
}
function deleteRow(tableID)
{
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var td = event.target.parentNode;
var tr = td.parentNode;
for(var i=0; i<rowCount-1; i++)
{
var row = table.rows[i];
if(rowCount <=2)
{
alert("maintain atlest one product record");
break;
}
else{
tr.parentNode.removeChild(tr);
rowCount--;
i--;
}
}
parseFloat(get_textbox_value)=parseFloat(get_textbox_value)-100;
}
$(document).ready(function(){
$("#dataTable").on('input', '.txtCal', function () {
var calculated_total_sum = 0;
$("#dataTable .txtCal").each(function () {
var get_textbox_value = $(this).val();
if ($.isNumeric(get_textbox_value)) {
calculated_total_sum += parseFloat(get_textbox_value);
}
});
$("#total_sum_value").html(calculated_total_sum);
});
});
$(document).delegate( "#product_list", "change", function() {
$(document).on('change', "#product_list", function() {
var id = $(this).val();
alert(id);
if(id !==null || id !=='')
{
$.ajax({
url:'data.jsp',
type:'POST',
data:'pid='+id,
dataType:'JSON',
success:function(data)
{
$('.price').parent().parent().find('.price').val(data);
$('#descp').val(data.description);
$('#price').val(data.price);
$('#qty').val(data.stock_qty);
$('#gst').val(data.gst);
$('#hsn').val(data.hsn);
}
});
}
});
});
</script>
</head>
<body>
<form>
<div class="flex-container">
<div><input type="button" id="button" value="LogOut" ></div>
<div><input type="button" id="button" value="User" ></div>
<div><input type="button" id="button" value="Date" ></div>
<div><input type="button" id="button" value="Time"></div>
</div>
<p style="padding: 0px 60px;color:#9a32cd;font-size: 180%;" class="hed">ESTIMATES</p>
<div class="container">
<div id="container1">
<br>
<div style="color:#9a32cd; font-size: 130%;">SALES</div>
<ul style="text-decoration: none;" >
<li><a href="#">Estimates</a></li>
<li><a href="#">Invoice</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Services</a></li>
</ul>
<div style="color:#9a32cd; font-size: 130%;">PURCHESES</div>
<ul>
<li><a href="#">bills</a></li>
<li><a href="#">Vendors</a></li>
<li><a href="#">Expenses</a></li>
</ul>
<div style="color:#9a32cd; font-size: 130%;">CUSTOMER</div>
<ul>
<li><a href="#">Address Book</a></li>
<li><a href="#">Customer Statment</a></li>
</ul>
<div style="color:#9a32cd; font-size: 130%;">SETTINGS</div>
<ul>
<li><a href="#">GST Settings</a></li>
<li><a href="#">User Management</a></li>
<li><a href="#">Business Management</a></li>
</ul>
<br>
</div>
<div id="container2">
<div class="container21">
<p style="font-size:19px; margin-top:0px;">Address:</p>
Name:<input type="text" class="t" size="10"><br>
Address:<input type="text"class="t" size="10" ><br>
Door No:<input type="text" class="t" size="10"><br>
Mail Id:<input type="text" class="t" size="10"><br>
Phone NO:<input type="text" class="t" size="10" >
</div>
<div class="container21 k">
<p style="font-size:19px; margin-top:0px;">Bill To:</p>
Name:<input type="text" class="t" size="10"><br>
Address:<input type="text"class="t" size="10" ><br>
Door No:<input type="text" class="t" size="10"><br>
Mail Id:<input type="text" class="t" size="10"><br>
Phone NO:<input type="text" class="t" size="10" >
</div>
<div class="container21 k1">
<p style="font-size:19px; margin-top:0px;">Ship To:</p>
Name:<input type="text" class="t" size="10"><br>
Address:<input type="text"class="t" size="10" ><br>
Door No:<input type="text" class="t" size="10"><br>
Mail Id:<input type="text" class="t" size="10"><br>
Phone NO:<input type="text" class="t" size="10" >
</div>
<div class="container21 m">
<p style="margin-top:5px;">
Est No :<input type="text" class="t"></p>
</div>
<div class="container21 m m1">
<label for="start"></label>
<p style="margin-top:5px;">
Est Date: <input type="date" class="t" name="trip-start"></p>
</div>
<div class="container21 m m2">
<p style="margin-top:5px;">
Expiry Dt: <input type="date" class="t" name="trip-start"></p>
</div>
<div class="container21 m m3">
<p style="margin-top:5px;">
PO No :<input type="text" class="t"></p>
</div>
<div class="container21 m14">
<p style="color:#9a32cd; font-size: 130%; margin-top:-2px; margin-left:30px;">
SUBJECT:<input type="text" size="80" class="t1">
</p>
</div>
<div class="container21 m4">
<div class="container21 m5">
<table id="dataTable">
<thead>
<tr>
<th class="row1 row-sno" ><p >Sno</p></th>
<th class="row2 row-itemid"><p>ItemID</p></th>
<th class="row3 row-disc" ><p>Discription</p></th>
<th class="row4 row-price"><p>Price</p></th>
<th class="row5 row-qty"><p>Qty</p></th>
<th class="row6 row-hsn"><p>Hsn</p></th>
<th class="row7 row-gst"><p>GST</p></th>
<th class="row8 row-total"><p>Total</p></th>
</tr>
</thead>
<tr>
<td> </td>
<td style="left:3px;">
<select id="product_list" class="form-control" >
<option value="" selected> - select product - </option>
<%
String dburl="jdbc:mysql://localhost:3306/invoice?allowPublickeyRetrieval=true&autoReconnect=true&useSSL=false"; //database url string the "java_get_json_data_db" is database name
String dbusername="root"; //database username
String dbpassword="Venkat@619"; //database password
try
{
Class.forName("com.mysql.jdbc.Driver"); //load driver
Connection con=DriverManager.getConnection(dburl,dbusername,dbpassword); //create connection
PreparedStatement pstmt=null; //create statement
pstmt=con.prepareStatement("select * from products1"); //sql select query
ResultSet rs=pstmt.executeQuery(); //execute query and set in ResultSet object "rs".
while(rs.next())
{
%>
<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
<%
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</select></td>
<td><input type="text" id="descp" size="24" /></td>
<td><input type="text" id="price" size="8" /></td>
<td><input type="text" id="qty" size="8" /></td>
<td><input type="text" id="gst" size="8" /></td>
<td><input type="text" id="hsn" size="8" /></td>
<td><input type="text" value="100" size="14" class='txtCal'/></td>
<TD><i class="fa fa-trash" onclick="deleteRow('dataTable')"></i></TD>
</tr>
</table>
</div>
<button type="button" class="b" onclick="addRow('dataTable')">ADD</button>
<div class="container21 m10">
<p style="margin-top:0px;">
Grand Total:<b><span id="total_sum_value"></span></b>
</div>
</div>
<input type="button" class="button1" value="CANCEL" >
<input type="button" class="button1 s" value="SAVE" >
</div>
</div>
</form>
</body>
</html>
оценка. css
@charset "UTF-8";
.container{
margin-left:27px;
margin-top: 40px;
}
#container1{
border:2px #9a32cd solid;
height: auto;
width: auto;
border-radius: 65px;
position:absolute;
padding: 1.5%;
padding-left: 1%;
}
#container2{
border:2px #9a32cd solid;
box-shadow: 0px 0px 22px #acacac;
border-radius:70px;
height: 540px;
width:1070px;
margin-left: 320px;
float: center;
padding:1%;
}
.container21{
width:250px;
height:140px;
border:2px solid #9a32cd;
border-radius:50px;
position: absolute;
margin-left: 10px;
text-align:center;
}
.k{
margin-left: 270px;
}
.k1{
margin-left: 530px;
}
.m{
height:33px;
margin-left: 790px;
font-size:19px;
}
.m1{
margin-top:40px;
}
.m2{
margin-top:80px;
}
.m3{
margin-top:120px;
}
.m4{
width:1040px;
height:300px;
text-align:left;
margin-top:200px;
}
.m14{
width:1040px;
height:25px;
text-align:left;
margin-top:170px;
border:none;
}
.m5{
width:1000px;
height:250px;
margin-left:15px;
margin-top:7px;
overflow-y:auto;
border:none;
padding:none;
padding:none;
}
.m10{
height:33px;
margin-left: 750px;
font-size:20px;
margin-top:-20px;
text-align:none;
color:#9a32cd;
border:none;
}
.cancle{
margin-top:540px;
margin-left:180px;
}
#button{
background-color: Transparent;
background-repeat:no-repeat;
border: none;
cursor:pointer;
overflow: hidden;
outline:none;
font-size:160%;
font-family: "Times New Roman", Times, serif;
}
.button1 {
background-color: Transparent;
background-repeat:no-repeat;
border: none;
cursor:pointer;
overflow: hidden;
outline:none;
font-size:140%;
margin-top:515px;
margin-left:180px;
color:#9a32cd;
font-family: "Times New Roman", Times, serif;
}
.s{
margin-left:510px;
}
.button1:hover{
color:black;
}
ul{
display:block;
text-decoration: none;
list-style-type:none;
}
li{
margin-left:30;
font-size: 110%;"
text-decoration: none;
}
#button:hover{
color:#9a32cd;
}
a:link { color:black; text-decoration:none}
a:visited { color:black; text-decoration:none}
a:hover { color:#9a32cd; text-decoration:none}
.flex-container {
display: flex;
}
.flex-container > div {
margin: 10px 80px;
}
table {
overflow-y: scroll;
border-collapse: collapse;
border-spacing: 0;
table-layout: auto;
width: 950px;
color:#9a32cd;
white-space: nowrap;
font-size:130%;
font-family: "Times New Roman", Times, serif;
margin-left:15px;
margin-top:3px;
}
table tr{
counter-increment:serial-number;
}
th, td {
text-align: center;
padding: 6px;
}
tr{
height:40px;
}
tr:nth-child(even){background-color: #D7BDE2 }
.sno{
}
.row-sno {
width: 50px;
}
.row-itemid {
width: 110px;
}
.row-disc {
width: 195px;
}
.row-price {
width: 90px;
}
.row-qty {
width:80px;
}
.row-hsn {
width:80px;
}
.row-gst {
width:95px;
}
.row-total {
width:100px;
}
.row-delete{
width: 5%;
}
.auto-index{
counter-reset:serial-number;
}
.auto-index td:first-child:before
{
counter-increment: Serial-number;
content: " " counter(Serial-number);
}
.b{
margin-top:260px;
margin-left:50px;
background-color: Transparent;
background-repeat:no-repeat;
border: none;
cursor:pointer;
overflow: hidden;
outline:none;
font-size:120%;
color:black;
font-family: "Times New Roman", Times, serif;
}
.b1{
margin-left:55px;
}
.b:hover{
color:#9a32cd;
}
.b1:hover{
color:#9a32cd;
}
.t{
border:none;
outline:none;
font-size:15px;
font-family: "Times New Roman", Times, serif;
}
.t12{
border:none;
outline:none;
}
.t1{
size:2;
border:none;
outline:none;
font-size:20px;
font-family: "Times New Roman", Times, serif;
}
.hed{
font-family: 'Allerta Stencil';
position: relative;
text-transform: uppercase;
color:#9a32cd;
overflow: hidden;
background: linear-gradient(90deg,#9a32cd, #fff,#9a32cd);
background-repeat: no-repeat;
background-size: 80%;
animation: animate 3s linear infinite;
-webkit-background-clip: text;
-webkit-text-fill-color: rgba(255, 255, 255, 0);
}
@keyframes animate {
0% {
background-position: -500%;
}
100% {
background-position: 500%;
}
}
table {
counter-reset: serial-number;
}
table tr {
counter-increment: rowNumber;
}
table tr td:first-child::before {
content: counter(rowNumber);
min-width: 1em;
margin-right: 0.5em;
}
data. jsp вызов из ajax
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="org.json.JSONObject"%>
<%@page import = "org.json.JSONArray"%>
<%@page import="java.util.*"%>
<%
if(request.getParameter("pid")!=null) //get "pid" from index.jsp file in jQuery ajax part this line "data:"pid="+id,".
{
String getID=request.getParameter("pid"); //getable "pid" store in new "id" variable
String dburl="jdbc:mysql://localhost:3306/invoice?allowPublickeyRetrieval=true&autoReconnect=true&useSSL=false"; //database url string the "java_get_json_data_db" is database name
String dbusername="root"; //database username
String dbpassword="Venkat@619"; //database password
try
{
Class.forName("com.mysql.jdbc.Driver"); //load driver
Connection con=DriverManager.getConnection(dburl,dbusername,dbpassword); //create connection
PreparedStatement pstmt=null; //create statement
pstmt=con.prepareStatement("SELECT * FROM products1 WHERE item_id=?"); //sql select query
pstmt.setString(1,getID); //set "getID" variable
ResultSet rs=pstmt.executeQuery(); //execute query and set in ResultSet object "rs".
if(!rs.next())
{ //check if condition no record found on database than print blank
out.print(" ");
System.out.println("hai"+getID);
}
else
{
JSONObject obj=new JSONObject(); //create JSONObject object and name is "obj"
obj.put("description", rs.getString("description"));
obj.put("price", rs.getInt("price")); // get database record and "put" through json object "obj" and store in name,skill,age object variable name
obj.put("stock_qty", rs.getInt("stock_qty"));
obj.put("gst", rs.getInt("gst"));
obj.put("hsn", rs.getInt("hsn"));
System.out.println("hai2"+getID);
out.print(obj); //finally print the object
}
con.close(); //close the connection
}
catch(Exception e)
{
e.printStackTrace();
}
}
%>
и результат
добавление первой строки
когда я добавляю вторую строку и выбираю значение из выпадающего списка, оно изменяется в первой строке, но не во второй строке