espaces dans valeurs variable bloque appel à la fonction ?

espaces dans valeurs variable bloque appel à la fonction ? - HTML/CSS - Programmation

Marsh Posté le 03-11-2011 à 16:31:44    

Bonjour à tous,
 
J'ai un petit problème, j'ai fait quelques recherches par-ci par-là mais sans succès. Il faut dire que je suis une quenelle en javascript et que je ne sais pas comment demander à mon pote google de m'apporter la solution au problème...bref !
 
Je boucle en php sur ma base pour remplir un tableau, j'insère ma variable en php comme ceci dans l'appel à la fonction :

Code :
  1. ...
  2. <td><a href='' onclick='javascript:affectation(".$result->numero." );'>affecter</a></td>
  3. ...


et ma fonction javascript qui ouvre une nouvelle fenetre avec un passage d'argument :

Code :
  1. function affectation(numero)
  2.  {
  3.  var url="affectation-bl.php?numero="+numero;
  4.  window.open(url,'affection','menubar=no, scrollbars=no, top=100, left=100, width=950, height=300');
  5.  }


Quand la valeur de ma variable php ne contient aucun espace ça fonctionne et ma pop-up s'ouvre, mais quand j'ai une valeur avec des espaces dans ma variable php alors ça ne fonctionne pas...
Pourquoi donc ?! Merci beaucoup pour vos réponses :)

Reply

Marsh Posté le 03-11-2011 à 16:31:44   

Reply

Marsh Posté le 04-11-2011 à 10:46:45    

Appel à quelle fonction ?
 
Je crois qu'en fait, c'est un problème URL, car la variable est utilisée pour une URL et car il ne faut pas d'espace dans une URL.
 

Citation :

URLs can only be sent over the Internet using the ASCII character-set.
 
Since URLs often contain characters outside the ASCII set, the URL has to be converted into a valid ASCII format.
 
URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits.
URLs cannot contain spaces. URL encoding normally replaces a space with a + sign.
 
[...]
 
In JavaScript you can use the encodeURI() function. PHP has the rawurlencode() function and ASP has the Server.URLEncode() function.
 
(source http://www.w3schools.com/tags/ref_urlencode.asp )

Donc, essayer :

<td><a href='' onclick='javascript:affectation(".rawurlencode($result->numero)." );'>affecter</a></td>


Reply

Marsh Posté le 04-11-2011 à 12:38:55    

bonjour,
 
Merci pour ta réponse !
Quelle fonction ? celle-ci
 

Code :
  1. function affectation(numero)
  2. {
  3. var url="affectation-bl.php?numero="+numero;
  4. window.open(url,'affection','menubar=no, scrollbars=no, top=100, left=100, width=950, height=300');
  5. }


 
Ta solution me donne deux résultats différents:  
soit ma variable avec espaces est une chaine de caractères et là, toujours pareil, aucune pop-up ne s'ouvre, rien ne se passe.
soit ma variable avec espaces est une suite de chiffres et là par exemple si la valeur de variable est '12 5435 943' alors la valeur renvoyé par la fonction javascript est '12'  (affectation-bl.php?numero=12)
Il s'arrête donc au premier espace.
 
j'ai essayé sur cette base de comprendre un peu mieux mais sans succès pour l'instant...
des idées ? sinon je peux peut être tenter une autre méthode ? me fiche que ça soit sale c'est une petite application de gestion perso
merci encore

Reply

Marsh Posté le 07-11-2011 à 11:00:09    

Bon finalement j'ai fait propre. J'ai rajouté un champ à ma base pour remplacer ma clé primaire sale et compliqué avec espaces par un id à chiffres, simple...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed