JQuery и MySQL - PullRequest
       42

JQuery и MySQL

0 голосов
/ 22 мая 2010

Я взял скрипт jQuery, который удалял бы div по клику, но я хочу реализовать удаление записей базы данных MySQL. В delete.php:

<?php 

$photo_id = $_POST['id'];

$sql = "DELETE FROM photos
  WHERE id = '" . $photo_id . "'";

$result = mysql_query($sql) or die(mysql_error());

?>

Сценарий jQuery:

$(document).ready(function() {
   $('#load').hide();
});

$(function() {
$(".delete").click(function() {
$('#load').fadeIn();
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;

$.ajax({
   type: "POST",
   url: "delete.php",
   data: string,
   cache: false,
   success: function(){
 commentContainer.slideUp('slow', function() {$("#photo-" + id).remove();});
 $('#load').fadeOut();
  }

 });

return false;
 });
});

Div исчезает, когда я нажимаю на него, но затем, когда я обновляю страницу, он появляется снова ...

Как мне заставить его удалить его из базы данных?

РЕДАКТИРОВАТЬ: Вупси ... забыл добавить к нему db.php, так что теперь он работает>. <</p>

Ответы [ 2 ]

1 голос
/ 22 мая 2010

Нет никакого способа, которым php мог бы даже приблизиться к работе. Где база данных? Извлеките http://www.php.net/manual/en/mysql.examples-basic.php, из которого видно, что в базе данных есть нечто большее, чем просто запрос.

<?php
// Connecting, selecting database
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>
0 голосов
/ 22 мая 2010

У вас есть данные в виде строки GET, но вы используете запрос POST, попробуйте изменить строковую переменную на объект. Нравится:

$(document).ready(function() {
   $('#load').hide();
});

$(function() {
$(".delete").click(function() {
$('#load').fadeIn();
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = { id : id };

$.ajax({
   type: "POST",
   url: "delete.php",
   data: string,
   cache: false,
   success: function(){
 commentContainer.slideUp('slow', function() {$("#photo-" + id).remove();});
 $('#load').fadeOut();
  }

 });

return false;
 });
});

Кроме того, я надеюсь, что вы правильно готовите соединение MySQL в своем PHP, вы не можете просто вызвать mysql_query и надеяться, что он будет знать, какую базу данных вы имеете в виду, и как подключиться к ней самостоятельно:)

Посмотрите на ответ @Quotidian! :)

...