2013-11-18 2 views
-2

Jquery функция:Переменная Javascript для переменной PHP?

$(document).ready(function() { 
$(".checkbox").click(function(){ 
    var selVal = $(this).val(); 
    $.ajax({ 
      type: "POST", 
     url: 'remove_task.php', //This is the current doc 
     data: ({sel: selVal}), 
     success: function(data){ 
      //alert(selVal); 
      console.log(data); 
     } 
    });   
}); 
}); 

Мой PHP функция remove_task.php:

function remove_selected_task() 
{ 
    $task_to_remove = $_POST['sel']; 
    echo $task_to_remove; 
} 
if (isset($_POST['remsubmit'])) 
{ 
    remove_selected_task(); 
} 

не в состоянии передать это успешно. Может кто-нибудь мне помочь? Заранее спасибо.

+5

Почему круглые скобки '({Сель: selVal})'? – jszobody

+2

Как это не удается? Является ли он пустым на стороне PHP? Unset? Неверные данные? Вы проверили, что 'selVal' (' $ (this) .val() ') имеет желаемое значение на стороне JS? – ajp15243

+1

Нам нужна дополнительная информация. Когда вызывается 'remove_selected_task'? Успешно ли выполняется запрос ajax? Любые ошибки на стороне PHP или JavaScript? –

ответ

0

пытаются передать переменную $ _POST в функции напр:

remove_selected_task($_POST['sel']); 

function remove_selected_task($task_to_remove) 
{ 

    echo $task_to_remove; 
} 
+0

Следующие тоже не работают. function remove_selected_task ($ task_to_remove) { echo $ task_to_remove; } , если (Исеть ($ _ POST [ 'remsubmit'])) { remove_selected_task ($ _ POST [ 'SEL']); } – Krish

+0

вы можете просто объяснить, что это за $ _POST ['remsubmit'] ...? –

+0

$ _POST ['remsubmit'] - кнопка удаления. Я выбираю параметры из контрольного списка, нажав кнопку, которая приведет меня на страницу php. JS получает правильное значение выбранного параметра. Однако PHP не отображает то же самое. – Krish

0

Start, пытаясь диагностировать проблему, используя браузер средства разработки. Нажмите F12, чтобы открыть панель инструментов разработчика, и перейдите на вкладку Сеть.

Теперь щелкните флажок и следить за то, что происходит ...

  • показывает ли сеть панель запроса, вносимый в remove_task.php?

    Если нет, то в вашем javascript есть проблема с регистрацией события click. Может быть, селектор ошибается или что-то в этом роде.

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

  • Выполняет ли запрос отправку данных, которые вы ожидаете от него, и в правильном формате?

    Если нет, тогда вам нужно отладить ваш Javascript, чтобы узнать, почему. Я не могу с этим поделать, если я действительно не вижу данные, но вы должны иметь представление о том, что проблема в том, что отправляется неправильно. Может быть, значение флажка неверно?

    Если он выглядит правильно, перейдите к ответу.

  • В ответах содержатся данные, которые вы ожидаете?

    Если у вас есть код ответа 404, ваш URL-адрес неверен. Может быть, путь неправильный?

    Если ответ содержит сообщение об ошибке, вы должны уметь отлаживать PHP из этого. В нем будут соответствующие номера строк, поэтому этого должно быть достаточно, чтобы вы начали.

    Если ответ пуст, то ваш PHP-код ничего не отправляет: возможно, синтаксическая ошибка (с подавлением ошибок), или, может быть, программа заканчивается до того, как она доберется до echo данных. В любом случае потребуется дополнительная отладка в PHP.

Это примерно такая же помощь, как я могу дать, учитывая информацию, предоставленную вами в вопросе. Надеюсь, этого достаточно, чтобы вы начали.

+0

Это помогло мне в решении проблемы. – Krish

0

Это решит вашу проблему, и в следующий раз добавьте полный код в свой вопрос.

вы проверяете, существует ли «remsubmit» в вашем php-файле, но вы его не отправляете!Это должно работать, изменяя линию data: ({sel: selVal}), как показано ниже:

$(document).ready(function() { 
$(".checkbox").click(function(){ 
    var selVal = $(this).val(); 
    $.ajax({ 
    type: "POST", 
    url: 'remove_task.php', //This is the current doc 
    data: {sel: selVal, remsubmit:"1"}, 
    success: function(data){ 
     //alert(selVal); 
     console.log(data); 
    } 
    });   
}); 
}); 
+0

Это игра разницы, а не ответ. Объясните, что вы изменили и почему! – Quentin

+0

вы правы, извините. – Asenar

+0

Это не решило. – Krish

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