CONVERSION D'UN TABLEAU PHP EN DÉCLARATION DE TABLEAU JAVASCRIPT
tonydbz
Messages postés3Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention10 juin 2004
-
3 mai 2004 à 14:57
psylo6b
Messages postés2Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention28 novembre 2007
-
28 nov. 2007 à 17:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
psylo6b
Messages postés2Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention28 novembre 2007 28 nov. 2007 à 17:20
veuillez ne pas tenir compte de mon dernier message, il était destiné à un autre script (celui qui affiche mes images entre autre).
On ne peut pas éditer, donc j'en rajoute une couche :p
Merci tout de même à l'auteur de ce script
psylo6b
Messages postés2Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention28 novembre 2007 28 nov. 2007 à 14:18
Bonjour,
je souhaiterai utiliser ce script mais j'ai besoin que les adresses des images proviennent de ma base de données mysql.
Je galère à passer mon tableau PHP vers JS, si quelqu'un pouvait me filer un coup de main je lui en serait très reconnaissant, ça fait plusieurs heures que je passe sur le problème et sans grand succès. :-/
Félicitation à l'auteur de ce script tout de même qui a du en dépanner pas mal :)
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 16 juin 2007 à 12:46
Un petit défaut de cette fonction c'est qu'elle écrit le tableau javascript au moment où elle est appelée, au lieu de renvoyer une valeur qui peut stockée dans une variable.
Donc la modif qui s'impose :
function conv_tabjs($tableau, $nomjs, $ret '', $prempass true) {
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 4 août 2006 à 00:55
Vraiment nickel, même avec des tableaux compliqués... bravo
juniorberry
Messages postés2Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention 1 juin 2006 1 juin 2006 à 10:51
Merci Rivenbis !! cette source est si je puis me permettre niquel chrome !
Utilisation simple et code compréhensible !
Pour ceux qui ont un peu de mal malgrès toutes les explications voici ma façon de l'utiliser.
<?php
function conv_tabjs($tabPhp, $nomjs, $prempass=true){...}
//une petite boucle pour incrementer un tableau php
$i=0;
while ($tab=mysql_fetch_array($req)){ //où $req est un select quelconque
$tabphp[$i] = $tab["id"]; //par exemple
$i++;
}
?>
<script language="javascript">
<?php
conv_tabjs($tabphp,"id")//où id est le nom de mon tableau javascript
?>
//version je vérifie le premier enregistrement
alert(id[0]);
//version je boucle pour tout vérifier
for (i=0;i<<?php echo $i;?>;i++){
document.write (id[i]);
}
</script>
Voilà j'espère que cette explication aidera en plus des autres commentaires...
Rivenbis
Messages postés8Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention20 janvier 2007 18 nov. 2005 à 12:45
Donc déjà la fonction conv_tabjs($tableau, $nomjs, $prempass=true){...} EST UNE FONCTION PHP !!!
-> ce qui explique pkoi elle ne fonctionnera pas si tu la déclare avec tes fonctions javascript, il faut que tu la déclare en php, et que tu aies un tableau php à convertir.
conv_tabjs() est une fonction php qui renvoie dans le code de la page une déclaration de tableau javascript ...
Pour l'appeller, bien sur il faut mettre des balises <? ?> puisque c'est un appel php.
Par contre, il faut que cet appel php : <? conv_tabjs(...) ?> soit inclu dans des balises <script> </script> puisque c'est du javascript qu'il génère.
Exemple de structure de page :
<?php
trashcode
Messages postés1Date d'inscriptionsamedi 30 juillet 2005StatutMembreDernière intervention17 novembre 2005 17 nov. 2005 à 17:41
Bonjour,
J'ai cherché sur pas mal de forum a la recherche d'une fonction permettant de convertir un tableau php en tableau javascript.
J'ai essayé ce code mais cela m'indique une erreur javascript a l'affichage de la page.
la structure de ma page:
<html>
<head>
<title>mon titre</title>
<script language="JavaScript">
...
MesFonctions Javascripts dont :
function conv_tabjs($tableau, $nomjs, $prempass=true){...}
</script>
</head>
...
Ma page Html/php où j'appelle :
<?
conv_tabjs($row, $tabjs)
?>
...
</html>
Dans les commentaires précédents cela est dit que c'est une fonction php or c'est une syntaxe javascript...?
Je doute qu'il faille mettre des balises <? php ?> dans le code de la fonction
PS : J'utilise php 4.3.10
Y aurait il une structure précise de page HTML pour l'utilisation de cette fonction?
Merci par avance
Trashcode
Tipingouin
Messages postés14Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention12 juillet 2006 19 juil. 2005 à 09:03
Salut
merci pour la réponse ....
En fin de compte j'ai touvé c'était quoi l'erreur...
C'est pas le language mais un problème avec le format de mes données...
J'avait des retour à la ligne dans le tableau et il aimait pas sa...
Rivenbis
Messages postés8Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention20 janvier 2007 18 juil. 2005 à 16:03
Ben écoutes, je sais aps trop, j'ai fait ce code y a longtemps et j'avouene pas avoir essayé avec 4000 valeurs lol :)
Mais je vois pas pkoi ça marcherait pas, ou alors ptetreune limitation du langage....
Tipingouin
Messages postés14Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention12 juillet 2006 18 juil. 2005 à 13:34
Salut...
Je voudrait poser une question... Est-ce que la taille du tableau que peut créer cette fonction est limitée?
Parce que quand j'ai un tableau de 2 ou 3 valeur sa marche, mais quand j'ai 3000 voir 4000 valeur dans mon tableau sa marche plus...
C'est normal ou c'est moi qui ait mal utilisé le script...
Merci...
cedricdric
Messages postés4Date d'inscriptionjeudi 17 janvier 2002StatutMembreDernière intervention 3 février 2005 25 janv. 2005 à 00:57
salut,
juste un petit problème avec ce code:
le tableau recupère bien le contenu de celui php mais en tronquant le caractère '\' et aussi les nombres.
Je doit passer le chemin suivant c:\fichier\0001.jpg.
Pourrais tu m'aiguiller s'il te plait ?
Bastide43
Messages postés6Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention19 juillet 2013 10 juin 2004 à 17:17
Voici un extrait de mon code suite à ta reponse. Je n'ai toujours aucun resultat.
Il y a un truc que je ne dois pas voir. Merci beaucoup.
<?php
...
while ($row[$x] = mysql_fetch_array($result)) {....}
...
function conv_tabjs ($tableau, $nomjs, $prempass=TRUE) {...}
....
?>
<html>
<head>
<title>Test</title>
<script Language="Javascript">
//<!--
<?php
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]); // cet appel est-il correct ?? Dans mon test mon tableau comporte 3 lignes
// de 28 colonnes.
}
//-->
</script>
</head>
</html>
Rivenbis
Messages postés8Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention20 janvier 2007 10 juin 2004 à 16:49
perds pas de vue que c une fonction PHP, tu dois donc l'appeller dans un contexte PHP :
<script Language="Javascript">
//<!--
<?PHP
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
Rivenbis
Messages postés8Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention20 janvier 2007 10 juin 2004 à 16:44
perds pas de vue que c une fonction PHP, tu dois donc l'appeller dans un contexte PHP :
<script Language="Javascript">
//<!--
<?PHP
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
Bastide43
Messages postés6Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention19 juillet 2013 10 juin 2004 à 16:15
Merci pour la reponse. Je dois etre bouché mais je n'arrive à rien. Help....
Voici un extrait de mon code. Merci beaucoup pour un coup de main.
while ($row[$x] = mysql_fetch_array($result)) {....}
...
function conv_tabjs ($tableau, $nomjs, $prempass=TRUE) {..?}
....
<html>
<head>
<title>Test</title>
<script Language="Javascript">
<!--
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
</head>
</html>
tonydbz
Messages postés3Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention10 juin 2004 10 juin 2004 à 15:12
<script language="javascript">
fonction
</script>
Bastide43
Messages postés6Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention19 juillet 2013 10 juin 2004 à 14:44
je ne sais pas comment faire pour que cette fonction soit interprêtée entre des balises <script language="javascript"></script>.
Merci
Rivenbis
Messages postés8Date d'inscriptionmercredi 28 janvier 2004StatutMembreDernière intervention20 janvier 2007 3 mai 2004 à 15:13
Réponse à tonydbz :
Nan nan, en fait ce script, il génère le code javascript correspondant à un tableau identique à celui en php.
C'est à sens unique : le javascript est généré par le php, mais on peut pas modifier le tableau php depuis du javascript, c'est techniquement impossible, vu que le PHP est interprété côté serveur et le javascript côté client.
Si tu veux passer du javascript au php, y te faut passer par un envoi de données par mode post ou get....
voilà, @+
tonydbz
Messages postés3Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention10 juin 2004 3 mai 2004 à 14:57
Bonjour,
J'aurais juste voulu savoir si quand on modifie un des deux tableaux,la modification s'effectue automatiquement dans lautre tableau.
Par exemple, si on modifie le tableau javascript, est-ce que le tableau PHP sera aussi modifié de la même manière?
28 nov. 2007 à 17:20
On ne peut pas éditer, donc j'en rajoute une couche :p
Merci tout de même à l'auteur de ce script
28 nov. 2007 à 14:18
je souhaiterai utiliser ce script mais j'ai besoin que les adresses des images proviennent de ma base de données mysql.
Je galère à passer mon tableau PHP vers JS, si quelqu'un pouvait me filer un coup de main je lui en serait très reconnaissant, ça fait plusieurs heures que je passe sur le problème et sans grand succès. :-/
Félicitation à l'auteur de ce script tout de même qui a du en dépanner pas mal :)
16 juin 2007 à 12:46
Donc la modif qui s'impose :
function conv_tabjs($tableau, $nomjs, $ret '', $prempass true) {
global $ret;
if($prempass) {
$taille = count($tableau);
$ret 'var '.$nomjs.' new Array('.$taille.");\n";
foreach($tableau as $key => $val) {
if(is_string($key)) { $key = '\''.$key.'\''; }
conv_tabjs($val, $nomjs.'['.$key.']', $ret, false);
}
return $ret;
}
else {
if(is_array($tableau)) {
$ret .$nomjs.' new Array('.count($tableau).");\n";
foreach($tableau as $key => $val) {
if(is_string($key)){ $key = '\''.$key.'\''; }
conv_tabjs($val, $nomjs.'['.$key.']', $ret, false);
}
}
else {
if(is_string($tableau)) { $tableau = '\''.addcslashes($tableau,'\'').'\''; }
$ret .$nomjs.' '.$tableau.";\n";
}
}
}
Ainsi on peut écrire :
$tableaujavascript = conv_tabjs($tableauphp, 'montableau')
4 août 2006 à 00:55
1 juin 2006 à 10:51
Utilisation simple et code compréhensible !
Pour ceux qui ont un peu de mal malgrès toutes les explications voici ma façon de l'utiliser.
<?php
function conv_tabjs($tabPhp, $nomjs, $prempass=true){...}
//une petite boucle pour incrementer un tableau php
$i=0;
while ($tab=mysql_fetch_array($req)){ //où $req est un select quelconque
$tabphp[$i] = $tab["id"]; //par exemple
$i++;
}
?>
<script language="javascript">
<?php
conv_tabjs($tabphp,"id")//où id est le nom de mon tableau javascript
?>
//version je vérifie le premier enregistrement
alert(id[0]);
//version je boucle pour tout vérifier
for (i=0;i<<?php echo $i;?>;i++){
document.write (id[i]);
}
</script>
Voilà j'espère que cette explication aidera en plus des autres commentaires...
18 nov. 2005 à 12:45
-> ce qui explique pkoi elle ne fonctionnera pas si tu la déclare avec tes fonctions javascript, il faut que tu la déclare en php, et que tu aies un tableau php à convertir.
conv_tabjs() est une fonction php qui renvoie dans le code de la page une déclaration de tableau javascript ...
Pour l'appeller, bien sur il faut mettre des balises <? ?> puisque c'est un appel php.
Par contre, il faut que cet appel php : <? conv_tabjs(...) ?> soit inclu dans des balises <script> </script> puisque c'est du javascript qu'il génère.
Exemple de structure de page :
<?php
17 nov. 2005 à 17:41
J'ai cherché sur pas mal de forum a la recherche d'une fonction permettant de convertir un tableau php en tableau javascript.
J'ai essayé ce code mais cela m'indique une erreur javascript a l'affichage de la page.
la structure de ma page:
<html>
<head>
<title>mon titre</title>
<script language="JavaScript">
...
MesFonctions Javascripts dont :
function conv_tabjs($tableau, $nomjs, $prempass=true){...}
</script>
</head>
...
Ma page Html/php où j'appelle :
<?
conv_tabjs($row, $tabjs)
?>
...
</html>
Dans les commentaires précédents cela est dit que c'est une fonction php or c'est une syntaxe javascript...?
Je doute qu'il faille mettre des balises <? php ?> dans le code de la fonction
PS : J'utilise php 4.3.10
Y aurait il une structure précise de page HTML pour l'utilisation de cette fonction?
Merci par avance
Trashcode
19 juil. 2005 à 09:03
merci pour la réponse ....
En fin de compte j'ai touvé c'était quoi l'erreur...
C'est pas le language mais un problème avec le format de mes données...
J'avait des retour à la ligne dans le tableau et il aimait pas sa...
18 juil. 2005 à 16:03
Mais je vois pas pkoi ça marcherait pas, ou alors ptetreune limitation du langage....
18 juil. 2005 à 13:34
Je voudrait poser une question... Est-ce que la taille du tableau que peut créer cette fonction est limitée?
Parce que quand j'ai un tableau de 2 ou 3 valeur sa marche, mais quand j'ai 3000 voir 4000 valeur dans mon tableau sa marche plus...
C'est normal ou c'est moi qui ait mal utilisé le script...
Merci...
25 janv. 2005 à 00:57
juste un petit problème avec ce code:
le tableau recupère bien le contenu de celui php mais en tronquant le caractère '\' et aussi les nombres.
Je doit passer le chemin suivant c:\fichier\0001.jpg.
Pourrais tu m'aiguiller s'il te plait ?
10 juin 2004 à 17:17
Il y a un truc que je ne dois pas voir. Merci beaucoup.
<?php
...
while ($row[$x] = mysql_fetch_array($result)) {....}
...
function conv_tabjs ($tableau, $nomjs, $prempass=TRUE) {...}
....
?>
<html>
<head>
<title>Test</title>
<script Language="Javascript">
//<!--
<?php
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]); // cet appel est-il correct ?? Dans mon test mon tableau comporte 3 lignes
// de 28 colonnes.
}
//-->
</script>
</head>
</html>
10 juin 2004 à 16:49
<script Language="Javascript">
//<!--
<?PHP
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
10 juin 2004 à 16:44
<script Language="Javascript">
//<!--
<?PHP
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
?>
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
10 juin 2004 à 16:15
Voici un extrait de mon code. Merci beaucoup pour un coup de main.
while ($row[$x] = mysql_fetch_array($result)) {....}
...
function conv_tabjs ($tableau, $nomjs, $prempass=TRUE) {..?}
....
<html>
<head>
<title>Test</title>
<script Language="Javascript">
<!--
$tabjs = "tabjs";
conv_tabjs($row, $tabjs)
function affiche()
{
alert(tabjs[0][2]);
}
//-->
</script>
</head>
</html>
10 juin 2004 à 15:12
fonction
</script>
10 juin 2004 à 14:44
Merci
3 mai 2004 à 15:13
Nan nan, en fait ce script, il génère le code javascript correspondant à un tableau identique à celui en php.
C'est à sens unique : le javascript est généré par le php, mais on peut pas modifier le tableau php depuis du javascript, c'est techniquement impossible, vu que le PHP est interprété côté serveur et le javascript côté client.
Si tu veux passer du javascript au php, y te faut passer par un envoi de données par mode post ou get....
voilà, @+
3 mai 2004 à 14:57
J'aurais juste voulu savoir si quand on modifie un des deux tableaux,la modification s'effectue automatiquement dans lautre tableau.
Par exemple, si on modifie le tableau javascript, est-ce que le tableau PHP sera aussi modifié de la même manière?
Merci