我有一个以下的php文件来显示数据库中的SELECT数据
$connection = mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Pripojeni se nezdarilo" . mysql_error());
mysql_select_db('svatepole');
$sql = "SELECT * FROM novinky";
$result = MySQL_Query($sql, $connection);
while($zaznam = MySQL_Fetch_Row($result)):
echo "<form class='newsholder'>";
echo "<input value='$zaznam[1]'>";
echo "<input value='$zaznam[2]'>";
echo "<textarea>$zaznam[3]</textarea>";
echo "<input id='prime' attr='id' value='$zaznam[0]'>";
echo "<div class='buttonsholder'>";
echo "<button id='deletebutton'>Smazat</button>";
echo "<button>Upravit</button>";
echo "</div>";
echo "<div class='clearfix'></div>";
echo "</form>";
endwhile;
我正在尝试添加jquery ajax
$('#deletebutton').on('click', function(){
var idVal = $(this).parent().parent().find('#prime').val();
alert(idVal)
$.post("deleterecord.php",
{id:idVal}
);
});
找到行的ID并将其传递给DELETE文件,以便在单击时删除该行。
$connection = mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Pripojeni se nezdarilo" . mysql_error());
$id = $_POST['id'];
if(! $connection )
{
die('Could not connect: ' . mysql_error());
}
$sql = "DELETE FROM novinky WHERE id = $id"
;
mysql_select_db('svatepole');
$retval = mysql_query( $sql, $connection );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($connection);
然而,我无法让它发挥作用。根据Chrome控制台,只有一个事件处理程序只附加到FIRST行,尽管数据库包含更多内容。此外,只有点击第一个按钮时才会弹出添加的警报。
任何想法,我做错了什么以及如何正确地将数据传递给DELETE查询?
感谢。
答案 0 :(得分:1)
echo "<button id='deletebutton'>Smazat</button>";
将此更改为
echo "<button class='deletebutton'>Smazat</button>";
并在jquery中使用。
$('.deletebutton').on('click', function(){
var idVal = $(this).parent().parent().find('#prime').val();
alert(idVal)
$.post("deleterecord.php",{id:idVal},function(response){ alert(response);});
});
当你使用id ='deletebutton'.jquery检查id为'deletebutton'的第一个元素。所以事件处理程序只附加到id =“deletebutton”的第一个元素