Incorrect jQuery array

Asked

Viewed 40 times

1

people returning some data from the database that has html only it is with error in the json array and do not know what is wrong, I’m kind of layy in jquery yet, follow the error print: inserir a descrição da imagem aqui

I am sent to the ajax as follows:

$resultado = htmlspecialchars_decode(json_encode($resultado[0]));

2 answers

2

You probably don’t need the htmlspecialchars_decode:

$resultado = json_encode($resultado[0]);

If you will put result on a JSON, a last thing you do has to be JSON encoding.

(Since this field is an HTML fragment, deciding whether you need htmlspecialchars_decode to generate the fragment is another history, but it is impossible to answer this without seeing the rest of your code, or knowing what $resultado[0] should represent.)

1


solved using the following function:

function htmlspecialchars_decode(string, quote_style) {
              //        example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
              //        returns 1: '<p>this -> &quot;</p>'
              //        example 2: htmlspecialchars_decode("&amp;quot;");
              //        returns 2: '&quot;'

              var optTemp = 0,
                i = 0,
                noquotes = false;
              if (typeof quote_style === 'undefined') {
                quote_style = 2;
              }
              string = string.toString()
                .replace(/&lt;/g, '<')
                .replace(/&gt;/g, '>');
              var OPTS = {
                'ENT_NOQUOTES': 0,
                'ENT_HTML_QUOTE_SINGLE': 1,
                'ENT_HTML_QUOTE_DOUBLE': 2,
                'ENT_COMPAT': 2,
                'ENT_QUOTES': 3,
                'ENT_IGNORE': 4
              };
              if (quote_style === 0) {
                noquotes = true;
              }
              if (typeof quote_style !== 'number') {
                // Allow for a single string or an array of string flags
                quote_style = [].concat(quote_style);
                for (i = 0; i < quote_style.length; i++) {
                  // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
                  if (OPTS[quote_style[i]] === 0) {
                    noquotes = true;
                  } else if (OPTS[quote_style[i]]) {
                    optTemp = optTemp | OPTS[quote_style[i]];
                  }
                }
                quote_style = optTemp;
              }
              if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
                string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
                // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
              }
              if (!noquotes) {
                string = string.replace(/&quot;/g, '"');
              }
              // Put this in last place to avoid escape being double-decoded
              string = string.replace(/&amp;/g, '&');

              return string;
            }

Sources: phpjs.org

Browser other questions tagged

You are not signed in. Login or sign up in order to post.