2010-08-13 7 views
0

j'ai une question aussiAjax demande délimiteurs pour les données à envoyer

var url = "index.php?id=123&sid=321"; 
$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: "name=John&url="+url, 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 

Maintenant, nous avons ici url qui contient un &, mais & est utilisé pour délimiter les variables de données à envoyer au serveur et ainsi puisque nous avoir ce signe dans l'URL, il pense que c'est un délimiteur, et je ne reçois pas la variable url complète.

Quelqu'un peut-il aider avec une solution judicieuse.

Merci à l'avance.

Répondre

2

passer un objet au lieu de chaîne pour le champ data:

var url = "index.php?id=123&sid=321"; 
$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", url: url }, 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 
}); 
+0

et en php pour rendre json_decode correct ?, sinon comment va-t-il comprendre que c'est un objet? – Centurion

+0

Non, vous n'avez pas besoin de faire json_decode. jQuery passera ces champs comme champs POST, et votre script PHP sera capable de les lire séparément, de la même manière que vous lisez habituellement les données des messages de formulaire - $ _POST ["nom"] et $ _POST ["url"] –

+0

Merci beaucoup !!! – Centurion

1
var url = 'index.php?id=123&sid=321'; 

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    name: 'John', 
    url: url, 
    success: function(msg){ 
     alert("Data Saved: " + msg); 
}); 

Il serait préférable d'emballer toutes les données avec JSON comme ci-dessus, et construire le côté serveur URL dans le cadre de tout script que vous avez cette manipulation demande AJAX.

+0

url var ici est juste un exemple, j'ai besoin d'être envoyé au serveur, il peut être quelque chose d'autre par exemple var url = Nom & Prénom. – Centurion

+0

La réponse de Fyodor Soikin est la meilleure façon de faire face à cette situation –

1

Mettez vos données dans un JSON.

data: {id: '123', sid: '321'}