Bonjour,
Voila mon probleme.
Dans une partie de l'application que je développe, je dois pouvoir lier différentes versions de document à un objet (un tag).
J'ai donc mis en place un formulaire avec:
- un menu déroulant permettant de choisir le tag
- différentes checkbox représentant les différentes versions des documents.
exemple (en admettant que les @ sont des checkboxs) :
doc1 : @version1 @version2
doc2 : @version1 @version2
...
Apres avoir cliquer sur le bouton "Submit", il doit m'enregistrer dans une table de ma base de donnée :
- l'identifiant du tag sélectionné
- l'identifiant du document
- l'identifiant de la version sélectionné
Pour l'instant, il ne m'enregistre dans la base que l'id du tag et l'id de la version. Dans le cas ou l'utilisateur sélectionne plusieurs versions sur différents document, j'ai bien le nombre de tuples représentatif de la sélection, mais j'obtient toujours "0" pour le champ "document".
Dans la page op/op.TagMgr.php :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 <? printTitleBar(getFolder($settings->_rootFolderID)); printCenterStart(); print "<table><tr><td>"; printStartBox2(getMLText("link_to_tag")); print "Arborescence"; print "<hr size=\"1\" width=\"100%\" color=\"#000080\" noshade>"; print "<div class=\"standardText\"><ul>"; printFolder2(getFolder($folderid)); print "</ul></div>"; print "</td>"; print "<td>"; print "Choix des versions"; print "<hr size=\"1\" width=\"100%\" color=\"#000080\" noshade>"; print ' <form action="../op/op.TagMgr.php" method="post" enctype="multipart/form-data" name="form0"> <input type="Hidden" name="action" value="linktotag"> <table> <tr> <td class="inputDescription" valign="top">Name:</td> <td> <select name="name"> <option value="-1">-- Choose Tag --</option>'; $tags = getSelectTags(); foreach ($tags as $currTags) { print "<option value=\"$currTags\""; if ($currTags == $settings->_tags) print " selected"; print ">$currTags"; } print "</select>"; print ""; print "<div class=\"standardText\"><ul>"; printFolder(getFolder($folderid)); print "</ul></div>"; print '</td></tr> <tr> <td colspan="2"><br><input type="Submit"></td> </tr> </table> </form>'; print "</td></tr></table>"; printEndBox(); printCenterEnd(); print "<br><br>"; printHTMLFoot(); function printFolder($folderid) { if (! $folderid->inheritsAccess()) printAccessList($folderid); $subFolders = $folderid->getSubFolders(); $documents = $folderid->getDocuments(); foreach ($subFolders as $folder) printFolder($folder); foreach ($documents as $document) printDocument($document); } function printDocument($document) { print "<li class=\"documentClass\">"; print "<a class=\"standardText\">".$document->getName()."</a>"; if (! $document->inheritsAccess()) printAccessList($document); print "</li>"; $versions = $document->getContent(); foreach ($versions as $version) printVersion($version); } function printVersion($version){ print " <input type='checkbox' name='version[]' value=\"".$version->getVersion()."\">" . $version->getOriginalFileName() . ""; $version = $_POST["version"]; } function printAccessList($obj) { return; }
ce qui renvoit à la fonction addLink(...,...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 else if ($action == "linktotag") { printStartBox(getMLText("link_to_tag")); print "<div class=\"standardText\">"; printMLText("document_linked"); $dc= addLink($document, $version); printMLText("op_finished"); printGoto(array(array(getMLText("tag"), "../out/out.LinkToTag.php?documentid=".$documentid."&version=".$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
17
18 function addLink($document, $version) { GLOBAl $db; GLOBAL $version; $tg=getSelectedTag(); $tag=$tg->getID(); foreach ($version as $vers){ $queryStr = "INSERT INTO tblLinkTagDocument (tag, document, version) VALUES ('".$tag."', '".$document."', '".$vers."')"; $res = $db->getResult($queryStr); } if (!$res) return false; return getLink($db->getInsertID()); }
J'arrive pas à faire en sorte que pour les versions des documents sélectionnées, je récupère (en plus du numéro de la version) l'identifiant du document de cette version.
Partager