2010-04-20 4 views
0
<?php> 
while($row = mysql_fetch_array($result2)) 
     { 
     echo "<tr>"; 
     echo "<td>" . $row['IDNO'] . "</td>"; 
    echo "<td>" . $row['ADDRESS'] . "</td>"; 
     echo "<td>" . $row['LASTNAME'] . "</td>"; 
     echo "<td>" . $row['FIRSTNAME'] . "</td>"; 
      echo "<td>" . <a href='update.php'>view</a> . "</td>"; 

     echo "</tr>"; 
     } 
    echo "</table>"; 
    } 
?> 

C'est mon code, je ne sais vraiment pas le bon format de liens mettre à l'intérieur des balises php:comment mettre des liens en php

echo "<td>" . <a href='update.php'>view</a> . "</td>"; 

S'il vous plaît aider

+0

pourquoi cette question est votée comme négative .. Bien que la question est idiote mais bien ... pas si grave que ça de voter –

+2

@piemesons: Une raison possible pour les downvotes pourrait être l'histoire de la question de l'OP, qui contient plusieurs des questions concernant les erreurs de syntaxe dans les scripts PHP. Cela pourrait amener les gens à penser qu'il ne s'intéresse pas vraiment à l'apprentissage. C'est une supposition, cependant, car je n'ai pas jeté de downvotes ici. –

+1

@ Jørn Schou-Rode Peut-être que votre point est juste, mais cette personne a 675 points .. Toujours .. au moins, il ne devrait pas être voté .. c'est tout ce que je veux dire ... –

Répondre

5

PHP est un langage de templates , il n'est pas nécessaire de lancer du HTML dans les chaînes.

<?php while ($row= mysql_fetch_array($result2)) { ?> 
    <tr> 
     <td><?php echo htmlspecialchars($row['IDNO']); ?></td> 
     <td><?php echo htmlspecialchars($row['ADDRESS']); ?></td> 
     <td><?php echo htmlspecialchars($row['LASTNAME']); ?></td> 
     <td><?php echo htmlspecialchars($row['FIRSTNAME']); ?></td> 
     <td> 
      <a href="update.php?idno=<?php echo urlencode($row['IDNO']); ?>">view</a> 
     </td> 
    </tr> 
<?php } ?> 

Notez l'utilisation de l'échappement HTML. Sans cela, les caractères < et & de vos chaînes seront copiés dans le code HTML brut, ce qui peut entraîner des problèmes de sécurité liés aux scripts intersite. Que ce soit en utilisant PHP templating ou coller des chaînes ensemble, toujours HTML-échapper la sortie de texte brut.

+0

Très bon point, mais je voudrais Faites-en un peu différent: appliquez htmlspecialchars dans la section de la logique métier à tout le tableau en une fois et utilisez des balises ouvertes courtes, de sorte que la ligne devienne aussi précise que ' –

+3

Je ne suis pas d'accord . 'htmlspecialchars' est une préoccupation liée à l'affichage de texte en HTML et, en tant que tel, elle est beaucoup plus liée à la mise en forme qu'à tout ce qui a trait à la logique métier d'une application. Il y aura un mélange de variables et de tableaux qui finiront sur la page; en essayant de les couvrir tous séparément pour les mettre sur la page, vous en manquerez certainement. De plus, puisque vous avez développé les valeurs, vous ne pouvez plus faire de tests comme ') {?> 'Dans le modèle. – bobince

+0

Naturellement, vous pouvez toujours réduire la quantité de frappe gênante.Par exemple, je définis généralement une 'fonction h ($ s) {echo htmlspecialchars ($ s, ENT_QUOTES); } 'et ensuite juste '. (Moi aussi, je pense que ce que PHP a fait avec la dépréciation des balises courtes était une erreur, mais nous sommes coincés avec ça maintenant.) – bobince

0

votre « lien » est la même balise HTML que <TD>. Donc, traitez-le aussi

4

Si vous ne tirez pas de valeurs dynamiques dans le code HTML de la cellule avec le lien, vous n'avez pas besoin d'effectuer de concaténation de chaîne ici. semblent

echo "<td><a href='update.php'>view</a></td>"; 

Cependant, il n'a pas très utile d'avoir le même lien dans chaque ligne de la table: il suffit d'imprimer le code HTML comme une chaîne. Peut-être que vous devez ajouter un paramètre querystring à l'URL liée? Pour ce faire, aura besoin de faire une concaténation de chaîne. L'exemple ci-dessous devrait vous commencer (notez la position des guillemets):

echo "<td><a href='update.php?id=" . $row['ID'] . "'>view</a></td>"; 
6

Lorsque vous utilisez PHP pour faire des pages Web, les chaînes que vous écho en sont à peu près toujours dans le contexte d'un document HTML. Autrement dit, si vous voulez afficher un lien HTML, écho juste:

echo "<td><a href='update.php'>view</a></td>"; 
0

echo "<td><a href='update.php'>view</a></td>";

ou si vous voulez passer le paramètre essayer

echo "<td><a href='update.php/value=".$val."'>view</a></td>";

Questions connexes