Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181

    [JS PHP] Js non riconosce l'array che le passo da Php: casting?

    Salve,

    sto usando la libreria "sajax" che mi consente di interagire tra javascript e php: tutto ok con il passaggio di parametri, funzioni, ecc.. se non fosse che per le Array.

    Ovvero, in una funzione PHP eseguo una query, e salvo il risultato in un'array di interi.
    Quando vado a stampare il contenuto del risultato, in javascript, mi stampa o nulla, o numeri che non centrano assolutamente nulla.. perchè?

    Se, ad esempio, dalla funzione passo il numero di record estratti, funziona perfettamente, ma se passo l'intera array NO. Come se javascript non riconoscesse che gli sto passando una variabile di tipo Array.

    Che posso fare, forzare un casting? Si può?
    Boh..
    -- John --

  2. #2
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    Sicuramente js a grossi problemi di cast..
    Non so come aiutarti... a me viene in mente solo di mettere array in una variavile dichiarata come

    var x = new Array();

    ma lo avrai gia fatto

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    grazie per la risposta, ma quando ho provato in questo modo, mi creava così ogni volta una nuova array.. e quindi risultava sempre vuota.
    -- John --

  4. #4
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    Sulla rete ho trovato questo

    Codice PHP:

    var myJsArray = new Array();

    <? for(var $i=0$i<$myPhpArray.length$i++) { ?>

    myJsArray[<?= $i ?>] = "<?= $myPhpArray[$i?>";


    ]<? ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    azz.. nada!

    non mi restituisce nulla, non mi da errori di sintassi, ma nemmeno mi fa comparire un'alert..
    che disperazione, ma possibile che si possa passare una stringa e non un'array? perchè?

    Qui c'è la libreria, se a qualcuno interessa ..e dandoci un'occhiata c'ha capito qualcosa in più del sottoscritto (il che è facile)
    -- John --

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    non serve guardare la libreria (credo :master: ). Ajax restituisce sempre una stringa. Puoi fare vedere la stringa che contiene l'array creato?
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    Si è vero.. ajax funziona così appunto, devo forse ricorrere a JSON?? Potrebbe servire a qualcosina??

    Comunque
    Codice PHP:
    $stmtP "SELECT * FROM TABLE WHERE ID = ".$Codice;
    $fOb ibase_query($conn$stmtP);

    $i 0;
    $arr = array();
    while (
    $obj ibase_fetch_object($fOb)) {
        
    $arr[$i] = $obj[x];    // x sta per il numero della colonna che mi interessa estrarre
        
    $i++;

    E mi restituisce 'Array'!
    Se invece chiedo la lunghezza.. magicamente me lo restituisce corretto: quindi NON è vuota!
    Codice PHP:
    echo count($arr); // mi torna un intero! 
    Spero possa essere utile..
    -- John --

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Senti non ho l'esempio sotto mano adesso e non capisco un'acca di php.
    Ma se restituisco una stringa di questo tipo

    "var a = [1,2,3];"

    basta usare eval per avere in javascript il vettore a

    comunque, io mi sto convertendo a json ma anche qui ricevo una stringa del tipo

    "var j = {v:[1,2,3]};" che debbo comunque valorizzare con eval

    di più non so. Ciao
    Pietro

  9. #9
    Originariamente inviato da pietro09
    Senti non ho l'esempio sotto mano adesso e non capisco un'acca di php.
    Ma se restituisco una stringa di questo tipo

    "var a = [1,2,3];"

    basta usare eval per avere in javascript il vettore a

    comunque, io mi sto convertendo a json ma anche qui ricevo una stringa del tipo

    "var j = {v:[1,2,3]};" che debbo comunque valorizzare con eval

    di più non so. Ciao
    In php5 ma lo puoi fare anche con
    il 4 basta utilizzare PEAR o un altro modulo
    puoi fare:
    Codice PHP:
    echo json_encode($array);
    echo 
    json_encode($obj); 

    Un array associativo in php è
    per js un object.

    tornando al esempio la sintassi
    che ho + visto utilizzare
    è questa :

    Codice PHP:
    //server
    echo '{v:[1,2,3]}';
    //client
    var result = eval("(" xmlhttp.responseText ")"); 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    @lake86

    <? for(var $i=0; $i<$myPhpArray.length; $i++) { ?>
    usa

    <?php for(var $i=0; $i<count($myPhpArray); $i++) { ?>
    o meglio

    <?php foreach($myPhpArray as $value) { ?>

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.