Я делаю PHP-код, который показывает всю запись, сохраненную в базе данных, с SQL-запросом. Он корректно показывает запись, но теперь я пытаюсь сделать диалог jQuery, который позволяет пользователю удалить одну запись.
Это мой код:
jQuery Диалог с запросом MySQL
<?php
$username="HIDDEN";
$password="HIDDEN";
$database="HIDDEN";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Non riesco a scaricare la lista degli eventi del Diario. L'errore è dovuto a noi. Riprova più tardi. Ci scusiamo per il disagio.");
$query= ("SELECT * FROM diary WHERE Username = '{$_SESSION['Username']}' AND NOT (folder = 'c') ORDER BY " . $_GET['sort']);
$result= mysql_query($query);
$i=0;
while ($i < $num) {
$type = mysql_result($result,$i,"type");
$create_date = mysql_result($result,$i,"create_date");
$priority = mysql_result($result,$i,"priority");
$date = mysql_result($result,$i,"date");
$materia = mysql_result($result,$i,"materia");
$descr = mysql_result($result,$i,"descr");
$id = mysql_result($result,$i,"id");
?>
<!-- finestra eliminazione -->
<div id="dialog-delete<?= $id; ?>" title="Sei sicuro di voler spostare nel cestino <?php echo($type . ' di ' . $materia); ?>" style="display: none;">
<div style="margin: 20px">
<img src="http://cdn1.iconfinder.com/data/icons/DarkGlass_Reworked/128x128/apps/konsolekalendar.png" alt="" height="127" width="120" style="margin-right: 30px; float: left" /><span class="auto-style4">Sei sicuro di voler eliminare <?php echo $type . ' di ' .$materia; ?>?<br>
</span><span class="auto-style5">Stai per spostare nel cestino questo
elemento<br>creato in data <?php echo $create_date; ?>.<br><br></span>
<table style="width: 70%">
<tr>
<td style="width: 50%">
<button onclick="javascript:window.close();" style="width: 96px; height: 28px;">Annulla</button> </td>
<td class="auto-style6" style="width: 50%">
<form name="form" method="post">
<input type="submit" style="width: 95px; height: 28px; float: right" name="deletediary" value="Elimina">
</form>
</td>
<?php
if(isset($_POST['deletediary'])){
$username="HIDDEN";
$password="HIDDEN";
$database="HIDDEN";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Non riesco a leggere l'elemento. L'errore è dovuto a noi. Riprova più tardi. Ci scusiamo per il disagio.");
$query= ("UPDATE diary SET folder = 'c' WHERE (Username = '{$_SESSION['Username']}') AND (id = '".$id."') LIMIT 1");
$result= mysql_query($query);
$num = mysql_numrows($result);
mysql_close();
echo("Evento diario spostato correttamente nel cestino.");
}
?>
</tr>
</table>
</div>
</div>
<?php
echo(' <script type="text/javascript">
function showDialogDelete'.$id.'()
{
$("#dialog-delete'.$id.'").dialog({
width: 650,
height: 250,
modal: true,
open: function(event, ui)
{
}
});
}
</script>');
?>
<table style="margin-bottom: 5px; width: 100%" cellspacing="10px">
<tr>
<td rowspan="2" style="width: 80px">
<table cellpadding="10px" style="width: 70px; height: 60px">
<tr>
<td>
<center style="padding: 5px"> </center>
</td>
</tr>
<tr>
<td>
<center style="padding: 5px"> </center>
</td>
</tr>
</table>
</td>
<td>
<b><?php echo $type . ' di ' . $materia ?></b><div style="float: right; color: #585858; font-size: 16pt"><span class="tooltip" onmouseover="tooltip.pop(this, '<a href=read.php?id=<?= $id?>&type=diary>Apri</a><br/><a href=\'javascript:void(null);\' onclick=\'showDialogDelete<?= $id; ?>();\'>Elimina</a>')" style="color: <?= $_SESSION['accent'] ?>">...</span></div>
</td>
</tr>
<tr>
<td>
<b>Priorità: </b><?php echo $priority; ?>
</td>
</tr>
</table>
Проблема заключается в том, что при попытке удалить запись, код SQL всегда удалить первую запись, а не один я выбрал.
Я попытался решить эту проблему также с помощью POST, GET и AJAX, но всегда удаляет первую запись.
Может ли кто-нибудь мне помочь, пожалуйста?
Вы не должны выполнять функцию echo'ing 'showDialogDelete', btw 'id' должен быть параметром, нет причин создавать определенную функцию для каждой записи. Тем не менее BTW, php является языком на стороне сервера, после его выполнения вы не можете изменить его на стороне клиента. Это, как говорится, ваша логика где-то не так. –