2010-04-22 3 views
0

Je tente d'insérer des messages à une fonctionErreur fonction Message

function addMessage($item) { 
    if ($result) { 
     $message = '<p class="ok"> 
        <span> Item added </span> 
        </p> 
        '; 
        header("Refresh: 2; url=?page=$item"); 
     } 
     else{ 
      $message = '<p class=not><span>There is an error blah blah</span></p>'; 
     } 
     return $message; 

}

Quand je l'utilise: addMessage ('contenu'), il renvoie uniquement à la seconde condition. Comment puis-je réparer cela?

+0

quel IDE utilisez-vous? Si vous ne pouvez pas payer pour Zend, alors Eclipse est parfaitement acceptable, et il y en a d'autres, comme CodeLobster ... c'est si trivial que vous ne devriez pas le demander ici (aucune infraction intentionnelle) – Mawg

+0

Im using eclips pdt. –

Répondre

1

Salut jasmin

Votre fonction renvoie toujours la deuxième condition parce que vous n'avez pas attribué une valeur à $result, Eider dans la fonction ou lorsque vous appelez la fonction (comme unicornaddict mentionné par d'autres mots).

Pour obtenir votre code fonctionne comme vous le voulez sans doute, votre fonction devrait ressembler à ceci:

function addMessage($item, $result) { 
    if ($result) { // It will return this condition, case $result has any value assigned and is different from FALSE (boolean) 
     $message = '<p class="ok"> 
        <span> Item added </span> 
        </p> 
        '; 
        header("Refresh: 2; url=?page=$item"); 
     } 
     else{ // It will return this condition, case $result doesn't has any value assigned or is equal to FALSE (boolean) 
      $message = '<p class="not"><span>There is an error blah blah</span></p>'; 
     } 
     return $message; 
} 

Et vous pouvez appeler la fonction comme vous où déjà l'appeler, mais ne pas oublier de inclure une variable ou une valeur qui doit être manipulé en tant que variable dans la fonction $result

addMessage('contents', $result); 

note:

Dans votre variable $message vous avez <p class=not> et devrait être <p class="not">. Rappelez-vous que header() doit être appelée avant qu'une sortie réelle ne soit envoyée au navigateur.

Espérons que ça aide.

5

Vous vérifiez $result à l'intérieur du if mais aucune valeur n'a été affectée avant et n'a pas été déclarée global. Je pense que vous vouliez dire vérifier $item:

if ($item) { 
+0

$ item dans une partie de l'URL et le résultat est une requête mysql –

+1

Veuillez coller l'intégralité du code. – codaddict

1

est-$result défini dans votre script? Utilisez if ($item) à la place.

Faites très attention à ce que PHP permette l'utilisation de variables indéfinies.

0

ce qu'ils ont dit :-)

BTW, un IDE décent (comme Zend) analysera votre code et vous avertir des choses comme ça.

Une telle analyse statique de code est connu comme « peluchage », donc Google pour « peluches PHP » ou voir des questions comme Is there a static code analyzer [like Lint] for PHP files?

Mais cet exemple de code est si petit que je suppose que vous êtes un débutant (aucune infraction interné - nous devions tous commencer quelque part), alors faites beaucoup de lecture et rassemblez beaucoup d'outils et d'expérience. Par exemple, un IDE décent (comme Zend ou Eclipse PDT) vous permettrait de parcourir votre code, ligne par ligne, et d'examiner la valeur de chaque variable, puis vous auriez dû voir le problème.

Bienvenue sur PHP et bonne chance!

+0

et il y a toujours le classique "Je ne vois pas ce qui peut aller mal, donc je vais echo() la valeur de $ result juste avant" 0 " – Mawg

+0

Mon problème en PHP est que je veux séparer la logique du HTML. .... Mon professeur écrit fonction php avec le code html qui est faux et je veux utiliser php manière correcte je dois oublier le mauvais sens ne est pas très facile Merci MAWG:) –

+0

peut vous envoyer tout le HTML/PHP poage, afin que nous puissions avoir une meilleure compréhension? – Mawg