2014-10-29 3 views
0

Я пытаюсь использовать jQuery/AJAX для запуска PHP-скрипта, который выполняет запрос на удаление таблицы в базе данных с использованием предопределенного id. Вот кодJQuery Ajax, выполняющий php-скрипт с предопределенным id

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#clear").click(function(){ 
    $.post("action.php?module=cart&act=del&id=$_GET[id]"); 
}); 
}); 
</script> 

И код action.php является:

if ($module=='cart' AND $act=='del'){ 
    mysql_query("DELETE FROM orders_temp WHERE id_pro='$_GET[id]'") 
    header('Location:list.php?id=$_GET[id]');   
} 

Но это не работает. Как заставить его работать?

+0

Вы уверены, что нашли это? '$ .post (" action.php? module = cart & act = del & id = $ _ GET [id] ");' – Ghost

+0

Кроме того, будьте REEEAAALLALLYYY осторожны с этим запросом. Вам нужно избегать ввода пользователя или в идеале использовать подготовленные операторы. В противном случае у вас может быть что-то вроде этого! http://xkcd.com/327/ – grdaneault

ответ

0

Во-первых, пользователь Ghost указал правильно, посмотрите на свою функцию $ .post, вы смешаете сообщение с get.

Если вы хотите отправить идентификатор параметра по ГЭТ (URL), а затем попробовать что-то вроде этого (я не проверял этот код, но если вы понимаете и решить вопрос я могу улучшить этот ответ):

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#clear").click(function(){ 
      var id = 2;//put here the id, may be via jquery for example 
      var url = "action.php?module=cart&act=del&id="+id; 

      $.ajax({     
       type: 'GET',        
       url: url,         
       data: dados,     
       success: function(response) { 
        //here you decides if you want make something with response 
       }    
      }); 
     }); 
    }); 
</script> 

В файле PHP вы получаете параметр и делать то, что вы хотите:

$id = $_GET["id"]; 
if ($module=='cart' AND $act=='del'){ 
    mysql_query("DELETE FROM orders_temp WHERE id_pro='".$id."'"); 
    header('Location:list.php?id='.$id);   
} 

PS: Помните, что необходимо проверить входные данные от пользователей, реализации, подготовленные заявления, использование issets в PHP переменных и т.д.

0

У вас есть две проблемы:

  1. Вы смешиваете синтаксис PHP синтаксис JavaScript здесь:

    $.post("action.php?module=cart&act=del&id=$_GET[id]"); 
    

Если посмотреть исходный код этой страницы, вы увидите, что в конце эта строка не анализируется ни на что полезное.

  1. Как указали другие пользователи, вы отправляете этот запрос через POST, а не GET, но вы передаете этот параметр в строке запроса, так что он все равно должен быть там. Но, поскольку выше, вы обнаружите, что $ id не содержит идентификатор, а строку, содержащую «$ _GET [id]». Однако, поскольку вы не являетесь POSTing любыми параметрами, лучше просто отправить это как GET, на мой взгляд.

Я предполагаю, что вы хотите что-то вроде этого:

$.get("action.php?module=cart&act=del&id=<?php echo $_GET['id']; ?>"); 

Таким образом, при условии, что на странице, на которой это бежится в настоящее время анализируется как PHP и предполагая, что идентификатор создается что-то в querystring, это значение будет проанализировано и добавлено в JavaScript.

Удачи вам!

Смежные вопросы