bestehende datenändern

zunzu

Mitglied
hallo zusammen, ich möchte bestehende datensätze editieren können. leider kann ich nur immer der erste datensatz in der datenbank speichern. wie kann den entsprechender datensatz editieren den ich anklicke?

datensätze anzeigen
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@page import="java.sql.*"%>
<%
	String id = request.getParameter("id");
	Class.forName("com.mysql.jdbc.Driver").newInstance();
	Connection con = DriverManager
			.getConnection("jdbc:mysql://localhost/Rechnungssystem",
					"root", "test");
	String query = "select * from Kunden";
	Statement st = con.createStatement();
	ResultSet rs = st.executeQuery(query);
%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<title>Rechnungssystem</title>
<link rel="shortcut icon" href="favicon.ico" />

<link rel="stylesheet" type="text/css" href="css/layout.css" />
<link rel="stylesheet" type="text/css" href="css/navi.css" />


</head>
<body>
<div id="container">
<div id="top">
<h1>Alle Kunden</h1>
</div>
<div id="SearchSide">
<fieldset><legend>Kunden details</legend>
<form method="POST" action="jsp/process.jsp" class="form">

<label for="name">Kunden Nr.</label>
<label for="name">Firma</label>
<label for="name">Vorname</label>
<label for="name">Nachname</label>
<label for="name">Adresse</label>
<label for="name">PLZ</label>
<label for="name">Ort</label>
<%
	while (rs.next()) {
%>

<div class="div_search_texbox"><input name="id" type="text"
	class="textbox_search" value="<%=rs.getString("Id")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="firma" type="text"
	class="textbox_search" value="<%=rs.getString("Firma")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="vorname" type="text"
	class="textbox_search" value="<%=rs.getString("Vorname")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="nachname" type="text"
	class="textbox_search" value="<%=rs.getString("Nachname")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="adresse" type="text"
	class="textbox_search" value="<%=rs.getString("Adresse")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="plz" type="text"
	class="textbox_search" value="<%=rs.getString("PLZ")%>"
	disabled="disabled" /></div>
<div class="div_search_texbox"><input name="ort" type="text"
	class="textbox_search" value="<%=rs.getString("Ort")%>"
	disabled="disabled" /></div>
<div class="button_normal_div"><input name="Submit" type="submit"
	class="buttons" value="Edit" /></div>
<%
	}
%>

</form>
</fieldset>
</div>

<div class="clear"></div>
</div>

</body>
</html>

dansatz editieren
Code:
<%@page import="java.sql.*"%>
<%
	String id = request.getParameter("id");
	Class.forName("com.mysql.jdbc.Driver").newInstance();
	Connection con = DriverManager
			.getConnection("jdbc:mysql://localhost/Rechnungssystem",
					"root", "carmelo");
	String query = "select * from Kunden";
	Statement st = con.createStatement();
	ResultSet rs = st.executeQuery(query);
%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<title>Rechnungssystem</title>
<link rel="shortcut icon" href="favicon.ico" />

<link rel="stylesheet" type="text/css" href="../css/layout.css" />
<link rel="stylesheet" type="text/css" href="../css/navi.css" />


</head>
<body>
<form method="POST" action="jsp/edit.jsp" class="form">
<%
	rs.next();
	{
%>

<div id="container">
<div id="top">
<h1>Bearbeitungs Modus</h1>
</div>
<div id="leftSide">
<fieldset><legend>Kunde Bearbeiten</legend> <label for="name">Kunden
Nr.</label>
<div class="div_texbox"><input name="id" type="text"
	class="textbox" value="<%=rs.getString("id")%>" /></div>
<label for="address">Firma</label>
<div class="div_texbox"><input name="firma" type="text"
	class="textbox" value="<%=rs.getString("firma")%>" /></div>
<label for="city">Vorname</label>
<div class="div_texbox"><input name="vorname" type="text"
	class="textbox" value="<%=rs.getString("vorname")%>" /></div>
<label for="country">Nachname</label>
<div class="div_texbox"><input name="nachname" type="text"
	class="textbox" value="<%=rs.getString("nachname")%>" /></div>
<label for="country">Adresse</label>
<div class="div_texbox"><input name="adresse" type="text"
	class="textbox" value="<%=rs.getString("adresse")%>" /></div>
<label for="country">PLZ</label>
<div class="div_texbox"><input name="plz" type="text"
	class="textbox" value="<%=rs.getString("plz")%>" /></div>
<label for="country">Ort</label>
<div class="div_texbox"><input name="ort" type="text"
	class="textbox" value="<%=rs.getString("ort")%>" /></div>


</fieldset>
</div>
<%
	}
%>

</form>

danke und gruss
 
S

SlaterB

Gast
nana, JavaScript ist da nicht dabei,
nur wären paar Wochen HTML/JSP/Servlet-Grundlagen nicht schlecht,
anfangs an fertige Tutorials halten


bin nicht direkt im Thema drin, was das Ziel aber sein sollte:
- in der Liste bei jedem Submit-Button die Id des Eintrags als Parameter übergeben
- in der Edit-Seite den Parameter auslesen, genau diese DB-Daten laden und beim Ändern-Button auch wieder an die Id denken,
wobei letzteres eh noch nicht programmiert ist?
 

zunzu

Mitglied
SlaterB korrekt, die id ist immer NULL. wie kann ich die id mit dem button weitergeben?

Code:
<div class="button_normal_div"><input name="Submit" type="submit" class="buttons" value="Edit" /></div>

gruss und danke
 
S

SlaterB

Gast
ich selber habe wie gesagt aktuell alles zu Web-Anwendungen eher vergessen

wie auch gesagt ist mein Tipp Tutorials anzuschauen, irgendwo wird doch hoffentlich Editieren von Datensätzen oder so mal drankommen,
hab eben 1 Min. geschaut aber noch nichts schönes gefunden, bisschen mehr Zeit darfst du investieren, ein 500 Seiten-Buch wäre auch nicht schlecht,

zwei Ideen sind mir dabei aber wieder in den Sinn gekommen:
zum einen hast du ja schon die Id oder sonst wenigstens Name usw. als normale Form-Felder, diese werden doch wohl als Parameter übertragen sonst macht das ganze Formular ja keinen Sinn,
jetzt frag mich aber nicht wie du grundlegend überhaupt einen Parameter ausliest..,

mit Namen usw. (oder hier gar bereits die Id) könntest du auch die DB-Query befüllen,
idealerweise übigens in einem Servlet, in JSP komplizierte Syntax, die ich wiederum nicht nennen kann (*)

zum anderen gibt es noch das Stichwort 'Hidden Form Fields',
wenn du nur den Klarnamen als Form Field hast kannst du die interne Id versteckt auch als normalen Parameter übergeben

------

* edit: String id = request.getParameter("id"); hast du allerdings ja auch bereits,
wenn deine Ids alle NULL sind, fehlen sie viellicht in der DB, wieder anderes Thema
 

zunzu

Mitglied
das problem war der wert disabled="disabled". habe jetzt ein hidden feld gemacht ohne den disabled.
jetzt bekomme ich auch einen wert. jedoch nur den ersten datensatz. hab das mal so versucht jedoch ohne erfolg

Code:
<%
	int i = 0;
	while (rs.next()) {
%>


<div class="div_search_texbox"><input name="<%="id" + i %>" type="text"
	class="textbox_search" value="<%=rs.getString("id")%>"/></div>

<%
	i++;
	}
%>

hat jemand eine idee wie ich immer die entsprechende id bekomme?
danke
 
S

SlaterB

Gast
bestimmt brauchst du pro Zeile ein eigenes FORM mit allen drum und dran
bzw. in der Liste doch eigentlich gar kein FORM wenn man nicht direkt Daten eintippen können soll,
falls die nur ausgegeben werden, dann reicht ein Button/Link mit eben der Id als Parameter
 

zunzu

Mitglied
kann mir da bitte jemand helfen. bekomme immer den ersten datensatz von der db. möchte aber immer der entsprechender datensatz editieren den ich anklicke
danke und gruss
 

Oben