Autor Zpráva
ServIT
Profil
Zdravím,

V javascriptu mám funkci ( která se používá i v jiných částech .. a to i JS kódu a proto bych do ní raději nezasahoval ... moc :) ) ) /je součástí objektu, ne třídy ... no ale to není důležité ..

     XHRPost    :    function( url, data ){
        //console.log( typeof data, data  );
        $.ajax({
            type: "POST",
            url: url,
            data: data,

Takže data bych rád měl taky jako objekt ... přímo při volání z JS to funguje, jenže pokud volám tuto funkci přes PHP, tak ten zakometovaný log mi píše, že data jsou řetězec. Volám takto :
$params = array("action"=>"doit");
$action=sprinf( "projFunc.XHRPost('%s', '%s' )", $url, htmlspecialchars( json_encode( $params ) ) );

Dělám něco špatně, nebo to takto nejde ? Ještě mám v rukávu do JS funkce dopsat if typeof == text, tak json.parse ... ale než se do toho dám, chtěl bych poradit od odborníků, jestli z PHP můžu takto předánat pole ..

Díky

Milan
Kajman
Profil
Takto voláte XHRPost s druhým parametrem jako strign '{cosi...}' místo s objektem {cosi...}. Třeba bude stačit odstranit jednoduché uvozovky u druhého parametru.

Také si trochu myslím, že na toto místo htmlspecialchars nepatří a případně by se mělo ošetřovat celé $action, dle kontextu, kam se vkládá.
ServIT
Profil
Kajman: htmlspecialchars jsem tu vložit musel, protože jinak mi javascript hlásil, že s tím má problém ...

A ano, ty uvozovny opravdu byly tím problémem ... no to by mě nenapadlo,

Moc děkuji za radu.

Milan

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0