Categories > [old] TbsOoo & TinyDoc >

tableau bobo ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: XaaroS
Date: 2006-10-31
Time: 16:40

tableau bobo ?

Salutation,

Je vous explique mon soucie:

j'ai une page php sur laquel je prend des informations d'une bdd par les actions de l'utilisateur.
Puis je souhaite lorceque l'utilisateur clique sur un lien pour générer le .sxw ce qui donne en code :

<?php
if ($action == "OpenDocument")
{
echo "<a href=\"test.php\" target=\"_blank\"> par ici </a>";
include "test.php";
}
?>
ca c'est le lien, si l'user clique on ouvre test.php qui contient ceci
<?php

include_once('tbs_class.php');
include_once('tbsooo_class.php');


// datas
$x = "coucou";

// instantiate a TBS OOo class
$OOo = new clsTinyButStrongOOo;

// setting the object
$OOo->SetZipBinary('zip');
$OOo->SetUnzipBinary('unzip');
//$OOo->SetZipBinary('/usr/bin/zip');
//$OOo->SetUnzipBinary('/usr/bin/unzip');

$OOo->SetProcessDir('tmp/');

// create a new openoffice document from the template with an unique id
$OOo->NewDocFromTpl('test.sxw');

// merge data with openoffice file named 'content.xml'
$OOo->LoadXmlFromDoc('content.xml');
$OOo->SaveXmlToDoc();

// display
header('Content-type: '.$OOo->GetMimetypeDoc());
header('Content-Length: '.filesize($OOo->GetPathnameDoc()));
$OOo->FlushDoc();
$OOo->RemoveDoc();
?>

Mais (si vous suivez toujours ^^) je voudrais que a la place de coucou, je puisse mettre
le résultat de la requete sql obtenu dans la page avant test.php!!
Autrement dit, je n'arrive pas a prendre des variable utilisées dans ma premiere page
puis a les utilisés dans test.php :(

Quelqu'un d'ingénieux aurait t-il une idée ?


Merci beaucoup pour votre aide !!
By: Olivier Loynet
Date: 2006-10-31
Time: 21:58

Re: tableau bobo ?

Bonjour,

Il n'y a pas de probleme pour passer des parametres dans un document.
Par exemple je passe dans l'URL x=toto

<?php
echo "<a href=\"test.php?x=toto\" target=\"_blank\"> par ici </a>";
?>

et dans la page 'test.php' il faut recuperer la variable x par
$x = (isset($_REQUEST['x']) ? $_REQUEST['x']  : 'coucou');


<?php
include_once('tbs_class.php');
include_once('tbsooo_class.php');

// datas
$x = (isset($_REQUEST['x']) ? $_REQUEST['x']  : 'coucou');

// instantiate a TBS OOo class
$OOo = new clsTinyButStrongOOo;

// setting the object
$OOo->SetZipBinary('zip');
$OOo->SetUnzipBinary('unzip');
//$OOo->SetZipBinary('/usr/bin/zip');
//$OOo->SetUnzipBinary('/usr/bin/unzip');

$OOo->SetProcessDir('tmp/');

// create a new openoffice document from the template with an unique id
$OOo->NewDocFromTpl('test.sxw');

// merge data with openoffice file named 'content.xml'
$OOo->LoadXmlFromDoc('content.xml');
$OOo->SaveXmlToDoc();

// display
header('Content-type: '.$OOo->GetMimetypeDoc());
header('Content-Length: '.filesize($OOo->GetPathnameDoc()));
$OOo->FlushDoc();
$OOo->RemoveDoc();
?>

Olivier
By: XaaroS
Date: 2006-11-02
Time: 13:08

Re: tableau bobo ?

Ah ! Merci beaucoup pour ton aide Olivier, cela fonctionne déja beaucoup mieu, maintenant j'arrive a générer ma page .swx avec des variable string du php tels que coucou ect...

Mais il y a un mais, a l'endroit ou :

$x = (isset($_REQUEST['x']) ? $_REQUEST['x']  : 'coucou');

je ne veut pas que x soit = a coucou mais a $tout (le résultat de la requete éxécuter sur la page précédente.
Ainsi j'ai fait quelques modifications :
echo "<a href=\"test.php?x=$tout[1]\" target=\"_blank\"> par ici </a>";
ca c'est le lien et :
$x = (isset($_REQUEST['x']) ? $_REQUEST['x'] : "$tout");

Voila, comme cela ça fonctionne pour ceux qui ont ou ont eu le même problème que moi.

Merci encore Olivier.
Cyril
By: XaaroS
Date: 2006-11-02
Time: 13:34

Re: tableau bobo ?

Zut, zut et re-zut !

Suite de mon périple dans le pays du PhP mangeur d'homosapience...

Maintenant il me faut non plus passer une variable a ma seconde page mais plustot un tableau je m'explique, voila ce qu'il y a pour l'instant :
echo "<a href=\"test.php?x=$tout[1]\" target=\"_blank\"> par ici </a>";
Ici il ne me faut plus envoyer $tout[1] mais le tableau au complet
et aussi ne plus récupérer :
$x = (isset($_REQUEST['x']) ? $_REQUEST['x'] : "$tout");
Mais chaque occurence du tableau tout (quelque chose du genre $x[1] $x[2] ...)
Mais alors soit je change en enlevant dans le lien le [1] à $tout et quand je génére mon .sxw il me dit Array et ne lit pas dans le tableau, soit rien du tout...
Alors la je ne vois pas du tout quoi faire, j'ai essayer plein de synthaxe différente pour passer le tableau $tout d'un coup mais rien à faire ca veut pas :'(

[ H E L P ]
snif :'(
By: XaaroS
Date: 2006-11-02
Time: 14:10

Re: tableau bobo ?

Re-coucou,

J'ai trouver une méthode de substitution qui consiste a passer les param ainsi :
echo "<a href=\"test.php?x=$tout[1]&y=$tout[2]\" target=\"_blank\"> par ici </a>";
puis je le récupére ainsi :
$x = (isset($_REQUEST['x']) ? $_REQUEST['x'] : "$tout");
$y = (isset($_REQUEST['y']) ? $_REQUEST['y'] : "$tout");

Mais ça ne me convient pas car le nombre d'occurence a $tout varie alors je
ne peux pas faire comme ca :s

une idée pour l'envoyer sous forme de tableau dans le link puis récupérer chaque valeur
une à une ?

Merci
By: Olivier Loynet
Date: 2006-11-02
Time: 14:55

Re: tableau bobo ?

Bonjour,

Il est possible de passer des tableaux dans des variables

test.php?toto[1]=x&toto[2]=y

en PHP, la variable $toto va etre transformée en un Array()

test.php
<?php
// pour voir les variables transmises dans l'URL
echo 'variable \'_REQUEST\'';
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';

// avant de travailler avec les variables, recuperer le contenu, s'il n'y a aucune valeur, alors $x sera égal à un 'array' vide
$toto = (isset($_REQUEST['toto']) ? $_REQUEST['toto'] :  array());

// ensuite parcourir le tableau pour extraire les differentes valeurs
echo 'contenu du tableau \'toto\'<br>';
reset($toto);
while (list($id, $fd) = each($toto)) {
  echo $fd.' = '.$id.'<br />';
}
?>

Olivier
By: Olivier Loynet
Date: 2006-11-02
Time: 14:58

Re: tableau bobo ?

petit bug.... il fallait lire

// ensuite parcourir le tableau pour extraire les differentes valeurs
echo 'contenu du tableau \'toto\'<br>';
reset($toto);
while (list($id, $fd) = each($toto)) {
  echo $id.' => '.$fd.'<br />';
}
By: XaaroS
Date: 2006-11-02
Time: 15:48

Re: tableau bobo ?

Escuse moi Olivier, je me suis mal exprimé :

Je ne souhaite pas passer en url une variable mais un tableau

Considerons que j'ai mon tableau $tout qui contient differents occurences
(ici je suis dans la premiére page)
ce qui donne :
echo "<a href=test.php?x=$tout> par ici aussi </a>";
donc j'envoie un tableau a test.php

Puis de l'autre coté, je veux obtenir différentes variables (j'ai les noms déja définit en fonction du modèle que cela générera) ayant la valeur des occurences de $tout (euh c'est clair non ? ^^)

donc logiquement obtenir quelque chose qui ressemble de trés pres à :
$tout2 = (isset($_REQUEST['tout']) ? $_REQUEST['tout'] : array());
$x = $tout2[1];
$y = $tout2[2];
//ect...

Mais évidement ça ne fonctionne pas non plus xD
Cependant je cherche du coté des fonctions de passage d'url tels que
serialize(), mais 1, je ne suis pas sur d'en avoir besoin, 2 j'ai essayer encore differentes façon de faire avec ce procéder mais ca VEUT PAS !!

J'imagine que l'ordinateur ne m'aime pas :D

merci pour ton aide une fois de plus, je continue le combat ^^
By: Olivier Loynet
Date: 2006-11-02
Time: 16:15

Re: tableau bobo ?

tu ne peux pas passer un tableau directement dans l'url.
Il faut que tu passes tous les elements du tableau sous la forme

test.php?tout[0]=xxxx&tout[1]=xxxx&tout[2]=xxxx ... etc

et dans PHP tu traites la variable $tout

Olviier
By: XaaroS
Date: 2006-11-02
Time: 16:45

Re: tableau bobo ?

Oui, je l'ai lu tant de fois ca... sauf qu'on peut le faire avec serialize mais c'est assez bizzare.

Mon problème se déplace si j'utilise cette méthode car mon nombre d'occurence change ! donc mon lien ne peut pas être de forme :
test.php?tout[0]=xxxx&tout[1]=xxxx ect...

Je vais chercher du coté du lien pour voir si on peut générer la l'url
J'ai pensé a une autre idée que je vais tester de suite
construire le lien avant le <a href en concaténant dans une varible $url

$url = "test.php";
// je reregarde de suite comment on concaténne ^^ (noobie du php)
$url .= "?";
for ($flag = 0; $nb_variables; $flag++, $nb_variable--)
{
$url .= $collonne;
$url .= '=';
$url .= $tout[$flag];
if ($flag + 1 != $nb_variable)
$url .= '&';
}

echo "<a href=$url> par ici </a>";

ça devrait fonctionner ça non ? :D
(si oui je dirait que j'ai eu comme une abscence et j'ai entendu dieu me parler pdt que je codais ^^)