J'ai une zone de texte simple sous une forme comme celle-ci:
<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
<?php if($siteLink_val) echo $siteLink_val; ?>
</textarea>
Je continue à obtenir un espace blanc supplémentaire dans cette zone de texte . Lorsque j'y clique, mon curseur est comme au milieu de la zone de texte et non au début? Quelle est l'explication?
value
attribut au lieu d'ajouter du texte à l'intérieur des balises.Eh bien, tout entre
<textarea>
et</textarea>
est utilisé comme valeur par défaut pour votre zone de zone de texte. Il y a un espace dans votre exemple. Essayez d'éliminer tout cela.la source
Ouvrez (et fermez!) Vos balises PHP juste après et avant vos
textarea
balises:la source
En bref:
<textarea>
doit être fermé immédiatement sur la même ligne où il a commencé.Pratique générale: cela ajoutera des sauts de ligne et des espaces utilisés pour l'indentation dans le code.
Bonne pratique
la source
Fondamentalement, il devrait être
S'il y a des espaces prédéfinis, disons à cause du formatage du code comme ci-dessous
Les espaces indiqués par des points continuent à s'ajouter à chaque soumission.
la source
Tout espace entre les balises d'ouverture et de fermeture de la zone de texte sera considéré comme un espace. Donc, pour votre code ci-dessus, la bonne façon sera:
la source
Une autre solution consiste à utiliser javascript:
C'est ce que j'ai fait. La suppression des espaces blancs et des sauts de ligne dans le code rend la ligne trop longue.
la source
Pour le rendre un peu plus propre, pensez à utiliser l'opérateur ternaire:
la source
Déménager ...> vers le bas me convient.
la source
J'ai le même problème, et la solution est très simple: ne commencez pas une nouvelle ligne! Bien que certaines des réponses précédentes puissent résoudre le problème, l'idée n'est pas clairement énoncée. La compréhension importante est, pour se débarrasser des espaces non voulus, ne commencez jamais une nouvelle ligne juste après votre balise de début.
La manière suivante est FAUX et laissera beaucoup d'espaces indésirables avant votre contenu texte:
La BONNE FAÇON de le faire est:
la source
Veuillez vous assurer qu'il n'y a pas de saut de ligne ou d'espace après, c'est pour vous assurer qu'il n'y a pas d'espace ou d'onglet, copiez et collez simplement ce code :) Je l'avais corrigé pour vous
la source
De plus: la balise textarea affiche des espaces pour les nouvelles lignes, tabulations, etc., dans le code multiligne.
la source
conserver le code de zone de texte sans espaces blancs supplémentaires à l'intérieur
de plus, si vous voyez des lignes vides supplémentaires, il existe une solution en méta-langage:
il imprimera des lignes sans lignes vierges supplémentaires bien sûr, cela dépend si vos lignes se terminant par '\ n', '\ r \ n' ou '' - veuillez adapter
la source
La zone de texte montre des espaces mystérieux car il existe un véritable espace dans les balises.
<textarea> <php? echo $var; ?> </textarea>
après avoir supprimé ces espaces supplémentaires entre les balises, le problème sera résolu comme suit.<textarea><php? echo $var; ?></textarea>
la source
Une solution qui a fonctionné pour moi consiste à ajouter le style
white-space: normal;
à la zone de texte, car il est parfois impossible d'éliminer tous les espaces blancs (par exemple, lorsque vous voulez que votre code respecte vos directives de codage, ce qui nécessite l'ajout d'onglets, d'espaces blancs et de sauts de ligne)Veuillez noter que la valeur par défaut pour textarea, au moins en chrome est:
white-space: pre-wrap;
la source
Si vous aimez toujours utiliser l'indentation, faites-le après avoir ouvert la
<?php
balise, comme ceci:la source
Je sais qu'il est tard mais peut aider les autres.
utilisez-le lorsque l'indentation du document est requise.
meme question
la source
Je suis contre le code HTML mélangé au code PHP.
Essayez cependant ceci:
la source
<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php
et?></textarea>
pour s'assurer qu'il est vraiment pur. Aussi, puis-je vous demander pourquoi vous êtes contre HTML avec PHP?Définissez simplement votre et votre balise de fermeture sur la même ligne.
la source
De plus, lorsque vous dites que le curseur est au "milieu" de la zone de texte, cela me fait penser que vous pouvez également avoir un remplissage supplémentaire ou l' alignement du texte: centre défini quelque part dans votre CSS.
la source
Assurez-vous d'abord que votre $ siteLink_val ne renvoie pas d'espace blanc comme valeur. L'élément <textarea> par défaut a une valeur vide, donc si la variable que vous faites écho pour une raison quelconque a des espaces, il y a votre problème dès le départ.
Pour rendre le code le plus pur, je suggère que vous puissiez faire quelque chose comme ça, permettant plus de flexibilité plus tard. J'ai créé une fonction qui retourne soit un NULL si la variable n'est pas présente (ce que vous semblez viser dans le message d'origine) et la valeur absolue sinon. Une fois que vous avez vérifié le contenu de votre variable, essayez ceci:
Et le code suivant dans votre zone de texte se lirait maintenant:
Cela suppose que votre installation PHP est configurée pour les appels de variables abrégés, comme le montrent les balises "<? =?>" Raccourcies. Si vous ne pouvez pas produire de cette façon, n'oubliez pas de faire précéder votre code PHP avec "<? Php" et de fermer avec "?>".
Évitez les sauts de ligne entre les <textarea> car cela peut créer le potentiel de caractères erronés.
Vérifiez également votre CSS pour vous assurer qu'il n'y a pas de règle de remplissage poussant le texte vers l'intérieur.
Vous spécifiez également une valeur de cols et de lignes sur la zone de texte, puis vous définissez une largeur et une hauteur. Ces règles sont contre-productives et entraîneront des visuels incohérents. Restez avec soit définir la taille par le style (je recommande de donner à l'élément une classe) ou les lignes / cols.
la source