2010-01-22 11 views
0

Je travaille sur un projet qui consiste à déplacer des produits autour d'une pièce de vie virtuelle, j'ai la fonction suivanteProblèmes avec javascript/php système de positionnement d'image

<a href="javascript:void(0)" onclick="sendxandy(<? echo $_SESSION['numberOfProducts']; ?>)">Save Positions of Products</a>

et la fonction est la suivante:

 
` 
function sendxandy(productAmount) 
{ 
     if (productAmount == 1) 
     { 
    location.href="homeview.php?x=" + dd.elements.image1.x + "&y=" + dd.elements.image1.y; 
     } 
     if (productAmount == 2) 
     { 
    location.href="homeview.php?x=" + dd.elements.image1.x + "&y=" + dd.elements.image1.y + 
    "&xtwo= " + dd.elements.image2.x + "&ytwo=" + dd.elements.image2.y; 
     } 
     if (productAmount == 3) 
     { 
    location.href="homeview.php?x=" + dd.elements.image1.x + "&y=" + dd.elements.image1.y + 
    "&xtwo= " + dd.elements.image2.x + "&ytwo=" + dd.elements.image2.y + 
    "&xthree= " + dd.elements.image3.x + "&ythree=" + dd.elements.image3.y; 
     } 
     if (productAmount == 4) 
     { 
    location.href="homeview.php?x=" + dd.elements.image1.x + "&y=" + dd.elements.image1.y + 
    "&xtwo= " + dd.elements.image2.x + "&ytwo=" + dd.elements.image2.y + 
    "&xthree= " + dd.elements.image3.x + "&ythree=" + dd.elements.image3.y + 
    "&xfour= " + dd.elements.image4.x + "&yfour=" + dd.elements.image4.y; 
     } 
     if (productAmount == 5) 
     { 
    location.href="homeview.php?x=" + dd.elements.image1.x + "&y=" + dd.elements.image1.y + 
    "&xtwo= " + dd.elements.image2.x + "&ytwo=" + dd.elements.image2.y + 
    "&xthree= " + dd.elements.image3.x + "&ythree=" + dd.elements.image3.y + 
    "&xfour= " + dd.elements.image4.x + "&yfour=" + dd.elements.image4.y + 
    "&xfive= " + dd.elements.image5.x + "&yfive=" + dd.elements.image5.y; 
} 
` 

et la fonction continue comme ça jusqu'à l'image 10. comme vous pouvez voir les coordonnées de l'image sont enregistrées dans l'URL afin que je puisse y accéder en php, ma prochaine fonction est ce

<a class="code" href="javascript:void(0);" onclick="moveProduct(<? echo $_SESSION['numberOfProducts']; ?>)">Move Images Back</a>

et à l'intérieur ici, j'ai ce (les variables moveTo sont des variables php pour une raison quelconque cet affichage ne peut pas imprimer le code, aussi moveTo est une autre fonction qui est fournie par un second script):

 
`function moveProduct(moveAmount) 
{ 
    if (moveAmount == 1) 
    { 
     if(window.dd && dd.elements) 
     { 
     dd.elements.image1.moveTo(,); 
     } 
    } 
    if (moveAmount == 2) 
    { 
     if(window.dd && dd.elements) 
     { 
     dd.elements.image1.moveTo(,); 
     dd.elements.image2.moveTo(,); 
     } 
    } 
    if (moveAmount == 3) 
    { 
     if(window.dd && dd.elements) 
     { 
     dd.elements.image1.moveTo(,); 
     dd.elements.image2.moveTo(,); 
     dd.elements.image3.moveTo(,); 
     } 
    } 

` maintenant je connais ma structure en boucle est dieu horrible :) mais s'il vous plaît ours avec moi. ce qui se passe est à l'intérieur de la fonction moveProduct, quel que soit le dernier si "moveAmount ==" est, alors les images ne seront déplacées qu'à ce nombre. par exemple, si j'ai la fonction définie comme ci-dessus seulement trois images seront retenus, pas un ou deux, ou quatre ou cinq, mais trois seulement. J'ai réellement dix articles donc j'ai les fonctions ci-dessus mis en place pour 10 articles, et SEULEMENT 10 images seront retenues. Quand j'exécute la fonction moveProduct quand il n'y a pas 10 éléments sur la page, rien ne se passe comme si je chargeais une image, la déplacais, cliquais sur save, tout a l'air correct mais quand je la ramène aux coordonnées mémorisées il ne se passe rien.

s'il vous plaît aider tout conseil serait apprécié

+0

Que HTML/JavaScript est votre PHP production et quelles erreurs obtenez-vous du côté du client? –

+0

ok j'ai remplacé toutes les vars avec de la session var et maintenant il peut lire les variables moveTo fines s'il y a deux images l'instruction if dans le navigateur lit comme suit: \t if (moveAmount == 4) \t {\t \t \t si (window.dd && dd.elements) \t \t { \t \t dd.éléments.image1.moveTo (8, 8); \t \t dd.éléments.image2.moveTo (8, 53); \t \t dd.éléments.image3.moveTo (,); \t \t dd.éléments.image4.moveTo (,); mais puisque la quantité d'éléments est inférieure à 4, ce code ne devrait jamais être exécuté correctement? –

+0

J'ai lancé firebug avec le débogueur et il dit que quand j'essaye de cliquer sur le lien quand il ne bouge pas réellement il dit "moveProduct n'est pas défini" mais quand theres dix produits theres aucun problème courir le code –

Répondre

1

hey j'ai tout compris, les variables php retournaient des valeurs vides qui ont fait la fonction js échouent entièrement :)