작동하지 삭제할 I 데이터베이스jQuery를 아약스 MySQL의 기록은
$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;
에서 SELECT 데이터를 표시하기 위해 다음과 같은 PHP 파일을하고 난 행의 ID를 찾을 수 JQuery와 아약스에게
$('#deletebutton').on('click', function(){
var idVal = $(this).parent().parent().find('#prime').val();
alert(idVal)
$.post("deleterecord.php",
{id:idVal}
);
});
를 추가하려고 해요 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 콘솔에 따르면 데이터베이스에 더 많은 내용이 포함되어 있지만 첫 번째 행에만 첨부 된 이벤트 핸들러가 있습니다. 또한 추가 된 경고는 맨 처음 버튼을 클릭했을 때만 나타납니다.
어떤 생각을 잘못하고 있으며 데이터를 DELETE 쿼리에 올바르게 전달하는 방법은 무엇입니까?
감사합니다.
echo "<button class='deletebutton'>Smazat</button>";
및 JQuery와 사용
더 이상 mysql_ * 함수를 사용하지 마십시오. 더 이상 사용되지 않습니다. 자세한 내용은 [PHP에서 mysql_ * 함수를 사용하면 안되는 이유는 무엇입니까?] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)를 참조하십시오. 대신 [prepared statements] (http://bobby-tables.com/php.html)에 대해 알아야하며 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http : //)를 사용해야합니다. php.net/mysqli). 어떤 것을 결정할 수 없으면 [이 기사] (http://php.net/manual/en/mysqlinfo.api.choosing.php)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). –
BTW, 당신은 [SQL injection] (https://www.owasp.org/index.php/SQL_Injection)에 취약합니다. [XSS] (https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29)를 방지하려면 HTML로 출력 할 때 항상 ['htmlspecialchars'] (http://php.net/htmlspecialchars)를 사용하십시오.). –
감사. 나는 그것을 MySQLi로 변환 할 것이다 .... –