2013-09-03 2 views
0

J'utilise cet ajax pour passer un tableau de chaînes à une autre page.Comment passer un tableau de chaînes en utilisant ajax?

Ceci est le tableau sur nomes.php

[ 'Home','A empresa','funcionarios','Quem Somos?','Historia','Inicio',] 

Ceci est le code, l'alerte ne fonctionne pas - quelqu'un peut-il aider?

$.ajax({ 
type: 'post', 
url: 'nomes.php', 
beforeSend: function(x) { 
    if(x && x.overrideMimeType) { 
    x.overrideMimeType("application/j-son;charset=UTF-8"); 
    } 
}, 
dataType: "json", 
success: function(data){ 
    v=data; 
    alert(v); 
} 
}); 
+2

vous n'êtes pas même en passant des données dans la requête ajax. Où est votre tableau de chaînes? Peut-être que je ne comprends pas ce que vous essayez de faire. Essayez-vous de * récupérer * un tableau de chaînes plutôt que * passer * un tableau de chaînes? –

+0

Pourquoi faites-vous 'overrideMimeType'? –

+0

Le tableau que vous affichez n'est pas valide JSON. –

Répondre

1

Vous devez encoder le tableau PHP dans un tableau JSON.

<?php 
    echo (json_encode($myPhpArray)); 
?> 
0

Vous pouvez sérialiser le tableau en JSON en utilisant stringify pour le passer. Ajoutez ceci à votre appel Ajax:

data: JSON.stringify(arr); 

Remplacer arr avec votre tableau JavaScript. Cela nécessite un plugin. Jetez un oeil à this answer pour plus d'informations.

Alternativement, si votre tableau est en PHP, pas JavaScript, vous pouvez l'écho il directement comme ceci:

data: <?php echo json_encode($arr) ?>, 
0

Si vous essayez de passer le JSON au serveur, vous pouvez le faire comme :

var strArray = ['str1', 'str2', 'str3']; 
$.ajax({ 
type: 'post', 
url: 'nomes.php', 
data: {strarray: strArray}, 
dataType: "json", 
success: function(data){ 
    v=data; 
    alert(v); 
} 
}); 

Si vous essayez de le recevoir, vous devez définir l'en-tête sur le côté php:

header('content-type: application/json'); 
echo json_encode(array('str1', 'str2', 'str3')); 
+0

Si vous n'envoyez pas JSON, vous n'avez pas besoin de 'application/j-son' (qui devrait être' application/json') dans la requête AJAX * *. –

+0

J'ai copié son code, je n'ai même pas vu cette partie, le café n'a pas encore commencé. – OneOfOne

Questions connexes