Petit problème d'affichage

Eléphanteau du PHP | 35 Messages

26 mars 2007, 10:15

Bonjour à tous,

Voilà j'ai un léger soucis d'affichage, alors je fais appel à vos compétences.

Dans ma base, lorsque je souhaite modifier un champ dont le mot contient un ' du genre " Le Chalet d'Auron", je fais :
 
echo"<input name=nom_hotel type=text value='".stripslashes($tab_select['0']['Nom_Hotel'])."'></td>
</tr>
A l'affichage j'obtiens " Le Chalet d"

Pourriez-vous s'il vous plait m'aider!!

Merci d'avance Débo

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 10:26

la fonction strislashes() enlève les \ qui servent à protéger les ' dans une chaine de caractères.

Dans ton cas, tu as visiblement un ' qui ferme ta chaine avant l'heure.

Essayes tout d'abord en enlevant le stripslashes() et, si ça ne fonctionne pas, remplace le par addslashes() qui ajoute des \ pour protéger les '
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 35 Messages

26 mars 2007, 10:30

Si j'enlève le stripslashes j'ai le même affichage et si je mets le addslashes a la place et bien à l'affichage j'ai " le chalet d\"

Eléphant du PHP | 170 Messages

26 mars 2007, 10:32

Pouet pouet !

Le problème vient de la syntaxe. Tu ne connais pas vraiment tes bases en HTML, ce qui est paradoxal si tu veux faire du site dynamqiue en php.
Il y a lieu de mettre des " autour des valeurs d'attributs des balises HTML.

Exemple :

Code : Tout sélectionner

<input type="text" name="pouet" value="machin">
Lorsque tu renvoie une valeur extraite de la base de données, dans un input, il faut aussi mettre ces quotes. de plus en PHP, il est préférable d'utiliser des ' pour l'affichage des chaines de caractères.
<?php
echo '<input name="nom_hotel" type="text" value="'.$tab_select['0']['Nom_Hotel'].'">';
?>
Avec cette syntaxe, ton problème de ' sera résolu.
Concernant ton stripslashes() il y a un peu trop à dire de manière simple.
Je te conseille de faire un tour dans la doc.

EDIT : merde zeus est là, il va dire que j'ai été trop long avec le débutant maintenant :P
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends

Eléphanteau du PHP | 35 Messages

26 mars 2007, 10:34

Merci bcp de ton aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 10:44

EDIT : merde zeus est là, il va dire que j'ai été trop long avec le débutant maintenant :P
grrrr ... :langue:

Sinon, il reste toujours le soucis du " dans le mot :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 35 Messages

26 mars 2007, 10:47

nan, il n'y a plus de soucis, mais c'est vrai que d'habitude je mets toujours
<?php echo "$toto"; ?>
et j'ai pas pensé a mettre
<?php echo '$toto'; ?>

Eléphant du PHP | 170 Messages

26 mars 2007, 10:54

nan, il n'y a plus de soucis, mais c'est vrai que d'habitude je mets toujours
<?php echo "$toto"; ?>
et j'ai pas pensé a mettre
<?php echo '$toto'; ?>
TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT !
Ah non, pas ça !
On ne met pas les variables entre quote ' ', surtout pas.
Entre double-quote " " non plus d'ailleurs !

echo $toto; rien d'autre.

Un petit tour sur Phpdebutant, les tutos sont sur la droite
Modifié en dernier par Expreg le 26 mars 2007, 10:57, modifié 1 fois.
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 10:57

Attention :
<?php 

$toto = "Bonjour";

echo "$toto"; // Affiche "Bonjour"

echo '$toto'; //Affiche "$toto"

?>
Entre ' une variable PHP n'est pas interprétée.

D'une manière générale, il ne faut pas mettre une variable entre quote
echo $toto;
EDIT : bon bah grillé .... Comme ça, on pourra pas dire qu'on t'a pas averti :langue:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer