2013-02-18 6 views
2

Я пытаюсь удалить значение в строке, разделенной запятыми в таблице. Сценарий, который делает это (delete_url.php), отлично работает, если я устанавливаю значения сообщений вручную, но у меня возникла проблема с передачей этих значений скрипту с помощью ajax. На странице, которую я хочу передать значения из I имеем:jquery ajax удалить запись

<script type="text/javascript"> 
      $(document).ready(function() { 

       $('.delete').click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '../scripts/delete_link.php', 
      data: 'link=' + $(this).attr('data_link') + '&topic_pk=' + $(this).attr('data_topic'), 
      success: function() { 

      } 
     });   
    }); 
      }); 
     </script> 

И:

<a class='delete_link' href='#' data_link='<?php echo urlencode($link); ?>' data_topic='<?php echo $topic_pk; ?>' onclick="return confirm('Are you certain you want to DELETE this link?')";><img src="../images/delete.png" width="16" height="16" alt="delete" title="delete this link" border='0' /></a> 

я, вероятно, следует использовать JSON, но не уверен в том, как правильно это сделать. Спасибо за любую помощь.

+1

Если вы храните несколько значений в одном столбце базы данных **, вы делаете это неправильно! ** –

+1

Извините, но это не проблема, и единственный способ, которым я могу это сделать. – IlludiumPu36

+0

Я только что видел ошибку, должен быть $ ('. Delete_link'). Click (function() { – IlludiumPu36

ответ

1

Я обновил свой код на следующие, и теперь работает удаление записи и удаления записи на странице:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('table#delTable td a.delete_link').click(function() 
    { 
     if (confirm("Are you sure you want to delete this row?")) 
     { 
      var id = $(this).parent().parent().attr('id'); 
      var data = 'id=' + id ; 
      var parent = $(this).parent().parent(); 

      $.ajax(
      { 
        type: "POST", 
        url: '../scripts/delete_link.php', 
        data: 'link=' + $(this).attr('data_link') + '&topic_pk=' + $(this).attr('data_topic') + '&topic_introduction=' + $(this).attr('data_introduction'), 
        cache: false, 

        success: function() 
        { 
        parent.fadeOut('fast', function() {$(this).remove();}); 
        } 
      }); 
     } 
    }); 
}); 

</script> 

И стол:

<table id='delTable' width="100%" border="0" cellpadding="5"> 
<?php 
if(!empty($retrieved_links)){ 
    foreach($retrieved_links as $link){ 
?> 
    <tr> 
    <td><?php echo $link; ?></td> 
    <td width='16' align='center' valign='middle'><a class='delete_link' href='#' data_link='<?php echo urlencode($link); ?>' data_topic='<?php echo $topic_pk; ?>' data_introduction='<?php echo $topic_introduction; ?>'><img src="../images/delete.png" width="16" height="16" alt="delete" title="delete this link" border='0' /></a></td> 
    </tr> 
<?php } 
} 
?> 
</table> 

И delete_link.php:

<?php 
require_once('../connection/connect.php'); 
mysql_select_db($database, $connection); 

$link = urldecode($_POST['link']); 
$topic_pk = $_POST['topic_pk']; 
$topic_introduction = $_POST['topic_introduction']; 


if(!empty($link)){ 

$query_get_topic = "SELECT * FROM topic WHERE topic_pk = '$topic_pk'"; 
$result_get_topic = mysql_query($query_get_topic, $connection) or die(mysql_error()); 
$row_get_topic = mysql_fetch_assoc($result_get_topic); 

$retrieved_links = explode(",", $row_get_topic['links']); 

$delete_link = array_search($link,$retrieved_links); 

unset($retrieved_links[$delete_link]); 
$updated_links = mysql_real_escape_string(implode(',',$retrieved_links)); 

$links_body = str_replace(',', '<p>', $updated_links); 
$topic = $topic_introduction . '<p>' . $links_body; 

$query = "UPDATE topic SET links = '$updated_links', topic = '$topic' WHERE topic_pk = '$topic_pk'"; 
$result = mysql_query($query, $connection) or die(mysql_error()); 
} 
mysql_close(); 
?> 
Смежные вопросы