Кодировка Json не работает с htmlspecialcharsPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Кодировка Json не работает с htmlspecialchars

Сообщение Anonymous »

Я хочу закодировать массив PHP в JSON, чтобы передать его в изображении onclick() в качестве атрибута, поэтому мне нужны htmlspecialchars;
И затем в функции js я я пытаюсь использовать JSON.parse, чтобы преобразовать его в объект js, чтобы я мог использовать данные моего массива.
Но я не могу его проанализировать, поскольку синтаксис Я получаю от кодировки нет правильно
исходный массив PHP:
array (size=3)
0 => string 'Bleu' (length=4)
1 => int 1
2 => string 'XL' (length=2)

Я использую для этого htmlspecialchars(json_encode()) и
результат, который мне нужно получить:
jsonTab = '["Bleu",1,"XL"]';

Но вместо этого после кодирования я получаю:
Bleu,1,XL

Я не понимаю, почему кодировка работает неправильно...
код PHP, в котором я создаю массив PHP, указывая размер каждого цвета товара:
$couleurs = $pdo ->getCouleurProduit($id);
$nbCouleur = count($couleurs);
$t = 1;
foreach ($couleurs as $uneCouleur)
{

$taille = $pdo ->getTaille($id,$uneCouleur[0]); // renvoie les taille de la couleur
$nbTaille = count($taille); // renvoie le bombrede taille n0 = 1

${'couleur'.$t} = array($uneCouleur[0]); // definie une tableaux nomé "couleurx" avec pour premier element le libelle de la couleur
array_push(${'couleur'.$t}, $nbTaille); // ajoute en second element au tableaux "couleurx" le nombre de taille pour la couleur

for ($i = 0; $i < $nbTaille; $i++ ) // tant que i est inferieur au nombre de taille
{
array_push(${'couleur'.$t}, $taille[$i][0]); // on ajoute au tableaux "couleurx" le libelle (a [0]) de chaque taille du tableaux $taille

}
${'cl'.$t} = htmlspecialchars(json_encode(${'couleur'.$t})); //on creer une variable clx qui prend la valeur encoder en json du tableau "couleurx" actuel
$t++;

}$couleurs = $pdo ->getCouleurProduit($id);
$nbCouleur = count($couleurs);
$t = 1;
foreach ($couleurs as $uneCouleur)
{

$taille = $pdo ->getTaille($id,$uneCouleur[0]); // renvoie les taille de la couleur
$nbTaille = count($taille); // renvoie le bombrede taille n0 = 1

${'couleur'.$t} = array($uneCouleur[0]); // definie une tableaux nomé "couleurx" avec pour premier element le libelle de la couleur
array_push(${'couleur'.$t}, $nbTaille); // ajoute en second element au tableaux "couleurx" le nombre de taille pour la couleur

for ($i = 0; $i < $nbTaille; $i++ ) // tant que i est inferieur au nombre de taille
{
array_push(${'couleur'.$t}, $taille[$i][0]); // on ajoute au tableaux "couleurx" le libelle (a [0]) de chaque taille du tableaux $taille

}
${'cl'.$t} = htmlspecialchars(json_encode(${'couleur'.$t})); //on creer une variable clx qui prend la valeur encoder en json du tableau "couleurx" actuel
$t++;

}

имгировать массив PHP для атрибута
$r=1;

foreach ($couleurs as $uneCouleur)
{?>
Изображение
.jpg " alt = "lol" onclick="loadTaille();"/>

И js-файл produit.js
function loadTaille(img){

// var txt = "'[" + img + "]'";
// var txt = '["Bleu",1,"XL"]';

var tailles = JSON.parse(img);
alert (img)

}


Подробнее здесь: https://stackoverflow.com/questions/397 ... ecialchars
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»