forsterm
Erfahrenes Mitglied
Hallo,
ok benutze nun folgenden Code:
So sieht das ganze nun aus. Nun zu den Problemen. Wie kann ich verhindern, dass
man zwei Datensätze gleichzeitig bearbeiten kann? Sprich so etwas sollte nicht möglich sein.
Wenn man nun auf "Abbrechen" klick dann sollen die Formularfelder wieder verschwinden wie kann man das realisieren?
Und zu guter letzt wie kann ich die Daten wieder speichern, da ich ja kein html Formular mehr habe?
Danke schon mal für deine bisherige Hilfe.
mfg
forsterm
ok benutze nun folgenden Code:
Code:
<?php
require('connect.php');
if (isset($_GET['link'])){
if ($_GET['link'] == 'edit'){
$sql = 'SELECT * FROM tabelle WHERE id = '.intval($_GET['id']);
$query = mysql_query($sql) or die(mysql_error());
$ds = mysql_fetch_object($query);
die('
<td><input type="text" name="feld1" value="'.$ds->feld1.'" size="20"></td>
<td><input type="text" name="feld2" value="'.$ds->feld2.'" size="20"></td>
<td><input type="text" name="feld3" value="'.$ds->feld3.'" size="20"></td>
<td><input type="text" name="feld4" value="'.$ds->feld4.'" size="20"></td>
<td><input type="submit" value="Speichern" name="Speichern"><br><input type="submit" value="Abbrechen" name="Abbrechen"></td>
<input type="hidden" name="id" value="'.$ds->id.'">
');
exit;
}
}
?>
<html>
<head>
<script type="text/javascript">
<!--
lock = false;
req = false;
if(window.XMLHttpRequest)
{
try
{
req = new XMLHttpRequest();
}
catch(e)
{
req = false;
}
}
else if(window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
req = false;
}
}
}
function edit(id)
{
if(!req)
{
alert('Dein Browser kann das nicht! :o(');
return;
}
if(lock)
{
alert('Warte bitte, bis die letzte Anfrage verarbeitet wurde');
return;
}
//Die Anfrage senden
lock = id;
req.onreadystatechange = new Function('f','get_http_response(' + id + ')');
req.open("GET", '<?php echo $_SERVER['PHP_SELF']; ?>?link=edit&id='+ id + '&' + new Date().getTime(), true);
req.send(true);
}
//Antwort verarbeiten
function get_http_response(id)
{
//Wenn Anfrage fertig
if(req.readyState == 4)
{
//Wenn Status OK
if(req.status == 200)
{
//Antwort ausgeben
//alert(req.responseText);
document.getElementById(id).innerHTML = req.responseText;
}
//Ansonsten
else
{
//Statuscode ausgeben
alert(req.statusText);
}
//Request beenden
if(document.all && !window.opera)
{
req.abort();
}
lock = false;
}
}
//-->
</script>
</head>
<body>
<?php
$sql = 'SELECT * FROM tabelle';
$query = mysql_query($sql) or die(mysql_error());
echo '<table border="1" bordercolor="#000000" width="100%" style="border-collapse: collapse">';
while ($ds = mysql_fetch_object($query)){
echo '<tr id="'.$ds->id.'">
<td>'.$ds->feld1.'</td>
<td>'.$ds->feld2.'</td>
<td>'.$ds->feld3.'</td>
<td>'.$ds->feld4.'</td>
<td><a href="#" onclick="edit('.$ds->id.')">edit</a></td>
</tr>';
}
echo '</table>';
?>
</body>
</html>
man zwei Datensätze gleichzeitig bearbeiten kann? Sprich so etwas sollte nicht möglich sein.
Wenn man nun auf "Abbrechen" klick dann sollen die Formularfelder wieder verschwinden wie kann man das realisieren?
Und zu guter letzt wie kann ich die Daten wieder speichern, da ich ja kein html Formular mehr habe?
Danke schon mal für deine bisherige Hilfe.
mfg
forsterm