Hallo zusammen,
ich möchte gerne in einer Tabelle eine Zelle einfügen,
in dieser ich etwas hineinschreiben kann, was anschlie-
ßend mittels AJAX an die Datenbank übersendet wird.
Hat in einem anderen Fall funktioniert - jetzt aber leider nicht mehr.
Den Fehler kann ich ebenfalls leider nicht finden - vielleicht hat ei-
ner einen Tipp für mich, was ich an dieser Stelle falsch mache?!
Anbei der Code der Tabelle:
Und der PHP-Code für die DB:
Mein Problem ist es, dass er die ID der Zeile nicht übermittelt und somit alles unter ID 1 speichert.
VG, David
ich möchte gerne in einer Tabelle eine Zelle einfügen,
in dieser ich etwas hineinschreiben kann, was anschlie-
ßend mittels AJAX an die Datenbank übersendet wird.
Hat in einem anderen Fall funktioniert - jetzt aber leider nicht mehr.
Den Fehler kann ich ebenfalls leider nicht finden - vielleicht hat ei-
ner einen Tipp für mich, was ich an dieser Stelle falsch mache?!
Anbei der Code der Tabelle:
HTML:
<?php foreach($stmt_vl as $row_vl) { ?>
<tr>
<td style="text-align:center;"><a href="kms_view.php?id=<?php echo $row_vl['id']; ?>"><?php echo $row_vl['id']; ?></a></td>
<td style="width:80px;">
<input type="hidden" value="<?php echo $row_vl['id'] ?>" id="iid" />
<table class="edit_tab" id="edit_tab">
<tr>
<td class="edit_vl" id="<?php echo $row_vl['id']; ?>">
<span id="label_<?php echo $row_vl['id']; ?>" class="text">
<?php echo $row_vl['todo']; ?>
</span>
<input type="text" class="editbox" id="input_<?php echo $row_vl['id']; ?>" style="color:#000000;" value="<?php echo $row_vl['todo']; ?>" name="todo" size="18%">
</td>
</tr>
</table>
</td>
</tr>
<?php } ?>
<script type="text/javascript">
$(document).ready(function()
{
$(".edit_vl").click(function()
{
var ID = $(this).attr('id');
$("#label_"+ID).hide();
$("#input_"+ID).show();
}).change(function()
{
var ID = $(this).attr('id');
var IID = document.getElementById("iid").value;
var data=$("#input_"+ID).val();
var dataString = 'id=' + IID + '&field=' + ID + '&value=' + data;
$.ajax({
type: "POST",
url: "auswert.php",
data: dataString,
cache: false,
success: function(html)
{
$("#label_"+ID).html(data);
},
error: function(data)
{
alert("Es ist ein Fehler aufgetreten!");
}
});
});
// Klick innerhalb des Labels
$(".editbox").mouseup(function()
{
return false
});
// Klick auserhalb des Inputfeldes
$(document).mouseup(function()
{
$(".editbox").hide();
$(".text").show();
});
});
</script>
Und der PHP-Code für die DB:
PHP:
$id=mysql_escape_String($_POST['id']);
$field=mysql_escape_String($_POST['field']);
$value=mysql_escape_String($_POST['value']);
//$field_ex = explode("x", $field);
//$field_n = $field_ex[0] . "x";
$stmt = $bewerber->runQuery("UPDATE vorgang SET todo='$value' WHERE id='$id'");
$stmt->execute();
Mein Problem ist es, dass er die ID der Zeile nicht übermittelt und somit alles unter ID 1 speichert.
VG, David