2013-10-11 3 views
0

Я использую этот текущий запрос Ajax, чтобы получить идентификаторы флажка «checked» у меня есть.Как получить данные, отправленные Ajax .post в php

$(function() { 
    $(":checkbox").click(function(){ 
     $.post("ci_editor.php", { id: this.id, checked: this.checked }); 
    });     
}); 

Эта функция работает, проблема, я понятия не имею, как получить его в файле «ci_editor.php».

Я знаю, что у меня есть метод $ _POST, но что я использую в качестве параметра, так как я даже не знаю идентификатор того, что будет проверяться?

+0

Попробуйте 'var_dump ($ _ POST)' и посмотрите, что это говорит. Но я думаю, что это будет '$ _POST ['id']' и '$ _POST ['checked']'. – putvande

+0

echo $ _POST ['id']; вы можете выбрать значение с помощью $ _POST ['checked']; – Luke

ответ

0

$ _POST не метод, это superglobal variable, поэтому отправляемое вами значение содержится в $ _POST. $ _POST также может содержать несколько значений как associative array, в этих случаях вы берете значение с помощью ключа, такого как $ _POST ['id'], который представляет индекс массива, связанный с ключом «id» в $ _POST.

Есть несколько вещей, которые не совсем правильны в вашей логике, прежде всего, не публикуйте значения при щелчке по галочке, если только нет, и у вас нет другого лучшего способа запуска сообщения. Если есть несколько флажков, вы могли бы много, а не только один, так что ваша третья линия должна быть что-то вроде (обратите внимание на массив):

$.post("ci_editor.php", [{ id: this.id, checked: this.checked }, { id: this.id2, checked: this.checked2 }]); 

Тогда $ _POST должен быть сам массив, вам просто нужно пройти через него и это сделало бы трюк.

Для обработки изменяющегося количества флажков, попробовать что-то вроде этого:

var payload = new Array(); 

$.each($(":checkbox") , function(index, value) { 
    //value holds the reference of the check box 
    if(value.attr('checked')){ 
     //Build the object with whatever values from the checkbox you require. 

     payload.push({ id: value.id, checked: value.attr('checked') }) 
    } 
}) 

и использовать полезной нагрузки массива в качестве $ .POST полезной нагрузки.

+0

Спасибо. Проблема, с которой я столкнулся бы, заключается в том, что флажки этого числа могут быть изменены. –

+0

Если количество флажков изменяется, ваш массив динамически растет, просто создайте почтовую нагрузку в цикле for. Ваша полезная нагрузка - это то, что происходит во втором параметре функции $ .post. Я отредактирую вопрос, чтобы справиться с этим делом. – Chepech

1

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

В отрицательном случае вы уверены, что пользователь не установил флажок.

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