Pointeur vers array() transmis comme argument

philbona -  
 mens sana -
Bonjour,

J'aimerais transferer l'adresse d'une cellule d'array vers une fonction javascript de manière à modifier depuis ce javascript le contenu de cette zone.

Je ne sais malheureusement pas comment faire.

A la louche,

<script> function change_sel(myPointer)
{
var myp = myPointer;
myp = 'Selected';
}
</script>

<? php
$zoneArray[1] = 'qquchose';
$zoneArray[2] = 'faut remplacer ce contenu par Selected';

echo "<a onClick='change_sel($zoneArray[2])>click here</a>";
?>

Le problème c'est que si j'utilise [change_sel($zoneArray[2])] je transmet bien entendu le contenu et non le pointeur vers la cellule de l'array.

Si qq'un pouvait me donner une voie de recherche, déjà je serais enchanté,

merci Bcp,
A voir également:

7 réponses

carbon3 Messages postés 471 Statut Membre 73
 
salut,
je ne sais pas si je comprends bien ce que tu veux, mais, à ma louche à moi, j'écrirais :
.../...
function change_sel(myval,myPointer)
.../...
echo "<a onClick='change_sel($zoneArray[2],2)>click here</a>";
0
philbona
 
salut carbon3,

en fait en faisant cela, tu envoies la valeur de $zoneArray[2], ainsi que le nombre 2.

Je ne vois pas très bien comment avec cela, je pourrais modifier le contenu de $zoneArray[2] à partir de ma fonction change_sel...
0
philbona > philbona
 
( complément d'info )

En fait je voudrais modifier une zone d'une Array à partir d'un code javascript...
( peut-être est-ce un p'tit chouia plus clair)
0
carbon3 Messages postés 471 Statut Membre 73
 
ok, je comprends mieux...
hélas je bloque encore sur la communication de variables entre javascript et php...
ce n'est pas insoluble, faut juste que j'y réfléchisse plus longtemps.
Je te souhaite de trouver quelqu'un de plus rapide.
0
philbona
 
Je crois malheureusement que le problème EST insoluble.

car à la réflexion, si je peux transférer des infos de type HTML vers un javascript, il est plus qu'évident que des arrays PHP se trouvant sur le serveur ( et non du côté client) la liaison est me semble-t'il impossible ( à moins de jouer avec des XML httpRequest.)

J'abandonne cette voie de recherche pour ce que j'ai à faire à moins que des idées 'innovantes' pointent leur nez..
0
carbon3 Messages postés 471 Statut Membre 73
 
Euh... et si ton array était javascript ?
0
philbona
 
Salut Carbon3,

En effet, c'est une des possibilités que j'envisage pour le moment, mais honnêtement j'aime bien php ;°)

L'autre solution que j'envisage, c'est d'utiliser un <select> dont je construit les options en PHP et que je positionne avec les valeurs qui me conviennent, ainsi j'ai un pseudo array qui contient toutes les informations qui me sont utiles tout de même et que je manipule facilement avec du JSCRIPT. bon c'est tordu mais du moins je pourrai passer en GET/POST tous le contenu.

PS.: je compte mettre ce <select> dans un <DIV> que je conserve en hidden bien sûr, pour ne pas parasiter ma page.

Philippe
0
carbon3 Messages postés 471 Statut Membre 73
 
Salut,
Je t'avoue que je me sens un peu 'on the loose'...
Peut-être que si j'ai un peu plus des tenants et des aboutissants ?
Je crois que je manque de contexte ;-)
0
philbona
 
Re,

C'est pas grave, je crois que ma solution tiens la route, et en cas que ...

j'ai de l'imagination niveau 'très fertile' à revendre...

en fait j'utilise un <select id=itemSelect> <option>... comme si c'était un array() et je parviens ainsi à transférer en une seule variable toutes les informations qui me sont nécessaires.

Mon problème initial étant que je ne voulais pas transmettre un nombre 'indéterminé' de variables à mon prog. appelant, raison pour laquelle je désirais au départ utiliser un array() sous php.

merci beaucoup pour ton coup de main,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
carbon3 Messages postés 471 Statut Membre 73
 
Hep !
j'ai trouvé cette phrase quelque part :
<a href="mk_it_chg.php?action=action_changer">change</a>

j'avoue ne pas savoir ce que cela peut bien vouloir dire, mais si "ça te parle" ??
0
philbona
 
oui,

bien sûr, mais ce n'est pas exectement dans le contexte qui m'intéresse.

pour info :

en cliquant sur 'change' tu actionnes le code php mk_it_chg.php en lui versant une variable [action] dont la valeur est 'action_changer'.
Le code php doit interpréter ce 'action_changer' et agir selon.

merci tout de même.
0
mens sana > philbona
 
Au cas où tu serais encore dans le pétrin après si longtemps...

C'est relativement simple mais il faut tout d'abord saisir ceci :

Javascript = client-side running
PHP = server-side running

Dans cette optique, lorsque la page se charge, PHP génère du code (dynamiquement) qui deviendra statique une fois rendu chez le client. Il s'agit ici de HTML généré... Une fois tout cela rendu dans le navigateur du "client" (visiteur), javascript se met en route et peut ainsi procéder indépendemment du serveur. Donc pour échanger entre les 2 ordinateurs (le serveur et le client), il faut appeler une page du serveur qui effectuera le travail voulu. Comprenant bien cela, tout ce qui peut être fait sur la machine client en Javascript devrait l'être afin de se simplifier la vie... Sinon, voicvi ce que tu peux faire :

Tu auras besoin :
AJAX (prototype.js dans l'exemple suivant)

var parametres = { 'param_1' : 'valeur_1', 'param_2' : 2 };demander_au_serveur = function(page, parametres) {
  new Ajax.Request(page, {params: parametres, method: 'post', onComplete: page_recue});
}

page_recue = function(xhr, json) {
  // si on renvoie une seule réponse à partir du PHP
  var reception = xhr.transport.responseText;
  alert(reception);
  // si on prévoit recevoir un objet comme celui envoyé en paramètres
  // alors, json.reponse_1 contiendra "Bla bla"
  alert(json.reponse_1);  // ou alert(json['reponse_1']);
}


Et dans PHP, on traite de cette façon :
<?
    $parametres = $_POST;
    // $parametres['param_1'] contient "valeur_1";

    // ici on traite ce qu'on veut faire avec ces parametres

    // Et soit on imprime ce qu'on veut retourner
    echo 'Bla bla ' . $parametres['valeur_1'] . "\n<br/>\n";
    // Ou bien on retourne des valeurs sous forme JSON
    $ARRAY_ASSOCIATIF = array( 'reponse_1' =>'Bla bla', 'erreurs' => 0);
    header('Content-Type: text/html; charset=iso-8859-1');  // spécifier le bon encodage ici !!!
    header('X-JSON',json_encode($ARRAY_ASSOCIATIF));
?>


SI c'est pas clair, je tenterai d'éclaircir ça comme je peux...
0
carbon3 Messages postés 471 Statut Membre 73
 
l'essentiel est que tu obtiennes "ton" résultat.
qu'importe le flacon, pourvu qu'on ait l'ivresse, oserai-je en dernier recours.
0
bat888
 
Il est bien évidement impossible de modifier un variable PHP depuis du JS, et une telle action me semble sans grand intérêt. Par contre si tu tiens vraiment à récupérer ton tableau depuis ton PHP pour le lire et le traiter côté JS, utilise JSON, avec ou sans ajax en fonction du contexte...
0