Jump to content
br

receber array de PHP

Recommended Posts

br

boa noite pessoal.

estou a tentar passar um array de php para uma funçao em javascript. estive a pesquisar e dizem que tenho que uzar json

tenho isto separado por ficheiros, index.php e script.js

no index:

<input type="button" value="Add" id="add" onclick='add(<?php echo json_encode($aC)?>)'/>

onde $aC é o meu array com Array ( [1] => Polish [2] => Mexican [3] => Italian )

no script:

function add(ob) {
   var ar = JSON.parse(ob);
   alert (ar[1]);
}

mas isto nao funciona, ja dei voltas a isto, e nao consigo compor.

alguem me sabe dizer porque?

Cumprimentos

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
taviroquai

Atenção que JSON não é um objecto em javascript. JSON é uma string.

Outra coisa, em vez de um Array, passa um objecto que contém esses items.

Por ser uma string, coloca entre aspas assim:

<input type="button" value="Add" id="add" onclick="add('<?php echo json_encode(array('itens' => $aC))?>')" />

E depois, o que faz sentido é:

function add(json) {
var ar = JSON.parse(json);
// ar é um objecto
alert(ar.itens[0]); // para obter o item 0 = 'Polish'
}

Outra coisa: qual é o browser onde estás a testar? Vê isto http://caniuse.com/json

Edited by taviroquai

Share this post


Link to post
Share on other sites
br

mesmo assim não funciona!

o meu array é assim: Array ( [1] => Polish [2] => Mexican [3] => Italian )

em json encoded fica entao assim: {"itens":{"1":"Polish","2":"Mexican","3":"Italian"}}

deveria funcionar, mas contina sem dar nada

os ficheiros estão separado, o array esta no index.php onde chamo o script.js

Share this post


Link to post
Share on other sites
taviroquai

Hmm... dessa form é preciso escapar a string... tenta assim:

<?php
$json = json_encode(array('itens' => $aC));
?>
<script>var json1 = '<?php echo $json ?>';</script>
<input type="button" value="Add" id="add" onclick="add(json1)" />

Depois faz alert(ar.items[1]);

  • Vote 1

Share this post


Link to post
Share on other sites
HappyHippyHippo

<input type="button" value="Add" id="add" onclick="var obj = <?php echo json_encode($aC); ?>; add(obj);"/>

function add(obj) {
   alert (obj);
}

agora diz exactamente o que pretendes


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.