Utiliser une variable PHP dans un code JavaScript [Résolu]

Messages postés
8
Date d'inscription
lundi 26 octobre 2009
Statut
Membre
Dernière intervention
16 novembre 2010
- - Dernière réponse : aZerato
Messages postés
8
Date d'inscription
lundi 26 octobre 2009
Statut
Membre
Dernière intervention
16 novembre 2010
- 17 juin 2010 à 14:40
Bonjour,

en pleine élaboration d'une interface admin d'un site web je cherche par un quelconque moyen de réutiliser une variable PHP dans un code JS.

Le principe est :

que je gère avec un bouton l'ajout de bloc qui s'auto-incrémente. Afin de rendre plus lisible la page, il y a également d'implanté un système de pagination limitant à 3 blocs par page.

Si on appuie sur le bouton ajout bloc 4 fois de suite les quatre bloques se font et après rafraîchissement la page le système de pagination prend le relais et dispatche donc 3 blocs sur la première page et 1 seul sur la seconde. Donc tout est normal.

Mais quand je veux ajouter un bloc sur la deuxième page il m'affiche un bloc ayant pour ID 2 ce qui rentre en conflit avec celui existant sur la première page donc il ne peut être enregistré.

Basé sur des TUTO (slideshow avec interface admin) proposés par SNOUPIX.

Donc je me suis penché pendant un bon bout de temps sur le problème mais sans succès, j'ai donc pensé à faire compter à l'aide d'une requête php le nombre de bloc et ensuite par la fonction js d'incrémenter juste ce nb total de bloc de un.

function ajouteSlideVide(){
var numeroSlide = <?php echo $a;?>+1;
$("#formulaires form:last").clone().appendTo('#formulaires').hide().fadeIn();

//Réinitialise les valeurs du formulaire
$('#formulaires form:last legend').html(numeroSlide);
$('#formulaires form:last input').val('');
$('#formulaires form:last textarea').val('');
$('#formulaires form:last img').remove();
$('#formulaires form:last #idslide').val(numeroSlide);
$('#formulaires form:last #modif').val('false');
$('#formulaires form:last button').text('Ajouter');

}


j'ai également regardé avec du ajax mais je n'ai pas compris, comment récupérer la valeur que retourne la requête count

$a = mysql_query('SELECT COUNT(*) FROM conteneur_acc');


Merci par avance!
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
73
3
Merci
Salut,

C'est plus un problème de php que de javascript là : ta variable a contient le resultat de l'exécution de ta requête, pas la valeur de ton count. Il faut que tu extrait cette valeur à partir d'un résultat de ta requête.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
8
Date d'inscription
lundi 26 octobre 2009
Statut
Membre
Dernière intervention
16 novembre 2010
0
Merci
Merci pour la rapidité ! je vais regardé ! Désolé étant novice je ne savais pas trop à quel endroit placer mon sujet.
Commenter la réponse de aZerato
Messages postés
8
Date d'inscription
lundi 26 octobre 2009
Statut
Membre
Dernière intervention
16 novembre 2010
0
Merci
Ouah parfait ! Je te remercie beaucoup ! ta proposition couplée avec des echo et des alert le problème à vite été vu !
Voici le code refait :
Le PHP:
$a = mysql_query('SELECT COUNT(*) FROM conteneur_acc');
$b = mysql_fetch_array($a);
$b = $b[0];


Le JS:
var nbbloc = <?=$b?>;
function ajouteSlideVide(){
var numeroSlide = nbbloc + 1;
$("#formulaires form:last").clone().appendTo('#formulaires').hide().fadeIn();

//Réinitialise les valeurs du formulaire
$('#formulaires form:last legend').html(numeroSlide);
$('#formulaires form:last input').val('');
$('#formulaires form:last textarea').val('');
$('#formulaires form:last img').remove();
$('#formulaires form:last #idslide').val(numeroSlide);
$('#formulaires form:last #modif').val('false');
$('#formulaires form:last button').text('Ajouter');

}

Merci encore !
Commenter la réponse de aZerato