IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Exécution d'un fonction


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut [Système] Exécution d'un fonction
    J'ai un petit probleme:

    Petite explication sur l'outil:
    C'est un outil de documentation (donc ou sont rangés des documents...)
    J'ai mis en place à coté de chaque document un lien
    Lorsque l'on clique sur ce lien, on arrive sur une page de formulaire.
    Cette page de formulaire contient uniquement un menu déroulant.
    Ce menu déroulant contient l'ensemble des Tags possible (enregistré préalablement dans l'outil).
    En cliquant sur le bouton "Submit", le document va etre lié à ce tag.

    Ce que je voudrai:
    En gros, je voudrai que le tag qui est lié à un document disparaissent du menu déroulant pour le document lié à celui ci (le document pouvant être lié à d'autres tags).

    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <form action="../op/op.TagMgr.php" method="post" enctype="multipart/form-data" name="form0_3" onsubmit="return checkForm1('0');">
    	<input type="Hidden" name="action" value="linktotag">
    	<input type="Hidden" name="documentid" value="<? echo $_GET['documentid'];?>">
    	<input type="Hidden" name="versionid" value="<? echo $_GET['version'];?>">
    	<table>
    	<tr>
    		<td class="inputDescription"><?=getMLText("name")?>:</td>
    		<td>
    			<?	
    				print "<select name='name'>";
    				print "<option value='-1'>-- Choose Tag --</option>";
    				$tags = getSelectTags();
    				foreach ($tags as $currTags)
    				{
    					if (!$vd->isLink($currTags))
    						print "<option value=\"$currTags\"";
    						if ($currTags == $settings->_tags)
    							print " selected";
     
    						print ">$currTags";
    				}
    				print "</select>";
    			?>
    		</td>
    	</tr>
    	<tr>
    			<td colspan="2"><br><input type="Submit"></td>
    	</tr>
    	</form>
    </table>
    $vd fait référence à un appel de fonction :
    $vd=getSelectedLink($documentid, $versionid);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function getSelectedLink($document, $version)
    {
    	GLOBAL $db;
     
    	$queryStr = "SELECT * FROM tblLinkTagDocument WHERE document = ".$document." AND version = ".$version."";
    	$resArr = $db->getResultArray($queryStr);
    	if (is_bool($resArr) && $resArr == false)
    		return false;
    	else if (count($resArr) != 1)
    		return false;
     
    	$resArr = $resArr[0];
     
    	return new LinkTo($resArr["id"], $resArr["tag"], $resArr["document"], $resArr["version"]);	
    }

    Ma fonction isLink:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function isLink($tag)
    	{
    		GLOBAL $db;
    		$queryStr = "SELECT id FROM tblLinkTagDocument WHERE document = " . $documentid . "  AND version = " .$versionid. " AND tag = " . $tag->getID();
    		echo $queryStr;
    		$resArr = $db->getResultArray($queryStr);
    		if (is_bool($resArr) && $resArr == false)
    			return false;
     
    		if (count($resArr) != 1)
    			return false;
    		else
    			return true;
    	}
    Mon probleme vient, je pense, de la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!$vd->isLink($currTags))
    Note : pour l'instant, le menu déroulant ne m'affiche rien du tout et si j'enleve cette ligne, la liste complete des tags apparait ...
    Je commence à me perdre ... qq'un peut m'aider?

  2. #2
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Message d'erreur :
    Call to a member function on a non-object in /home/../out.LinkToTag.php on line 62

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$vd->isLink($currTags)){
    pourquoi?

  3. #3
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Je connais pas trop les fonctions mais il y a quelque chose qui me paraît bizarre, comme le dit le message d'erreur tu fais $vd->fonction() mais ta fonction n'est pas une fonction définie dans uns classe, donc pourquoi elle s'appliquerait à l'objet $vd ??? D'ailleurs tu ne t'en sers pas dans ladite fonction, donc soit tu l'appelles directement sans mettre $vd->, soit tu transmets par argument la valeur de $vd...

Discussions similaires

  1. [Système] Pb d'exécution de la fonction getlist
    Par jeannot_31 dans le forum Langage
    Réponses: 13
    Dernier message: 04/03/2007, 14h34
  2. Réponses: 3
    Dernier message: 03/01/2007, 21h43
  3. [Système] exécuter fonction php dans la même page ?
    Par AzertyH dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2006, 10h01
  4. Réponses: 41
    Dernier message: 27/08/2006, 15h17
  5. Réponses: 5
    Dernier message: 28/04/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo