] Я хочу опубликовать массив, используя Jquery Ajax для php. Это возможно ?
Спасибо
. РЕДАКТИРОВАТЬ:
Я попытался сделать следующее:
type: "POST",
url: "path",
data: "styles=" + strstyles + "&templateId=" + custTempId, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}
, но стили не содержат данных. Я потратил много времени, прежде чем добавить тип данных в объявление. В чем может быть причина того, что «стили» публикуются как нулевые?
Второе редактирование
Я хочу опубликовать объект dom таблицы стилей и сохранить имена классов и свойства в БД. С вышеупомянутым редактированием добавление типа данных не помогло. Я думаю, что это потому, что строка не в формате json, как показано ниже -
{"a":1,"b":2,"c":3,"d":4,"e":5}
Поскольку моя строка имеет двойные кавычки, она не соответствует формату, и я думаю, что по этой причине я получаю пустой массив. Как я могу справиться с этим?
С jQuery это очень просто:
$.ajax({
type: "POST",
url: location.href,
data: data,//data is array
dataType: "json",
success : function () {
// Something after success
}
});
, если вы не хотите использовать JSON, PHP может автоматически создавать массивы из HTML-форм поэтому вы можете сделать что-то вроде этого:
type: "POST",
url: "path",
data: "styles[key1]=" + strstyles.val1 + "&styles[key2]=" + strstyles.val2 + ... + "&templateId=" + custTempId
...
то есть, если вы хотите иметь ассоциативный массив в php, но если вам нужен только массив, вы можете сделать
data: "styles[]=" + strstyles.val1 + "&templateId=" + custTempId
Также можно использовать
$.ajax({
type: "POST",
url: location.href,
data: ({'data[]' : array}),//array is array
dataType: "json",
success : function () {
// Something after success
}
});
В вызове POST вы не используете & , поэтому ваш код должен быть что-то вроде
type: "POST",
url: "path",
data: {styles: strstyles , templateId: custTempId}, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}
это понятно? Итак, переходя к моему решению,
var strstylesOBJ = {};
вставьте свой массив strstyles
в strstylesOBJ
и преобразуйте его в строку, а затем передайте его в своем почтовом вызове
strstylesOBJ.styles = strstyles;
strstyles = JSON.stringify(strstylesOBJ);
В коде PHP вы обновляете свой массив, используя $strstyles = json_decode($_POST['styles']);
выполните var_dump($strstyles)
и сообщите, пожалуйста, что получилось.
С уважением
Аяз Алави