8768 sujets

Développement web côté serveur, CMS

bonjour , quelqu'un pour m aider , je commence a mettre du temps pour le realiser alors qu'en architectuire simple ca marche , voila le probleme : je dois dans un formulaire apres avoir recupere un numero de compte , afficher automatiquement les informations du clients en ajax afin de un creer un rv pour ce cllient .
quand j'utilise trois fichier ca marche , un fichier x.js , form.php et xmember.php . x.js c est le fichier ajax et il appelle xmember.php et le formulaire c est form.php . si c est trois fichier ca marche avec mysql . maitenant je dois l'integrer avec une architecture MVC c est a dire le formulaire et xmember sont dans un seul fichier chacun dans une fonction et le fichier x.js appelle l'url au format Rvous.php?key=xxx&Ops=zzz , donc mon probleme est la recuperation du numero de compte dans le controleur et de le passer en argument au controleur, puis l'afficher en instantane les autre elements recupere dans les champs du formulaire puis passer a la cretions de l'action . merci
et voici les trois fichiers :
form.php
[code]<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="x.js"></script>
</head>
<body>
<div>
<!--debut du formulaire-->
<form class="ajax" action=" " method="GET">
<p>
<label for="numcompte">Rechercher un compte </label>
<input type="text" name="numcompte" id="numcompte" />
</p>
</form>
<!--fin du formulaire-->
<!--preparation de l'affichage des resultats-->
<div id="results"></div

</div>
</body>
</html> [code]
x.js
[code]$(document).ready( function() {
// détection de la saisie dans le champ de recherche
$('#numcompte').keyup( function(){
$field = $(this);
$('#results').html(''); // on vide les resultats
$('#ajax-loader').remove(); // on retire le loader

// on commence à traiter à partir du 10ème caractère saisie
if( $field.val().length > 9 )
{
// on envoie la valeur recherché en GET au fichier de traitement
$.ajax({
type : 'GET', // envoi des données en GET ou POST
url : 'xmember.php' , // url du fichier de traitement
data : 'numcompte='+$(this).val() , // données à envoyer en GET ou POST
beforeSend : function() { // traitements JS à faire AVANT l'envoi
$field.after('<img src="ajax-loader.gif" alt="loader" id="ajax-loader" />'); // ajout d'un loader pour signifier l'action
},
success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
$('#ajax-loader').remove(); // on enleve le loader
$('#results').html(data); // affichage des résultats dans le bloc
}
});
}
});
});[code]
et
xmember.php
[code]<?php

$serveur2 = " ";
$user2 = " ";
$passwd2 = " ";
$bdd2 = " ";
$port2 = ' ';

try {
$CNXSQL = new PDO('odbc:Driver=FreeTDS;Server=' . $serveur2 . ';port=' . $port2 . ';dbname=' . $bdd2, $user2, $passwd2);
// $cnx = new PDO('odbc:Driver=FreeTDS;Server=' . $serveur2 . ';port=' . $port2 . ';dbname=' . $bdd2.';UID=' . $user2 .';PWD=' . $passwd2 );
$CNXSQL->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Obligatoire pour la suite
} catch (PDOException $error) {
echo 'No : ' . $error->getCode() . '<br />';
die('Erreur : ' . $error->getMessage() . '<br />');
}
//connexion à la base de données
// On se connecte à la base
$numcompte = $_GET['numcompte'];

$sql = "select cl.COD_CLIENTE as numMembre , cl.NOM_CLIENTE as nom , cl.TEL_PRINCIPAL as telephone , "
. "ad.DET_DIRECCION as addresse from MECZY.CL.CL_CLIENTES cl , MECZY.CL.CL_DIR_CLIENTES ad "
. " where cl.COD_CLIENTE = '" . $numcompte . "' and cl.COD_CLIENTE = ad.COD_CLIENTE ";
$qid = $CNXSQL->prepare($sql);
$resultat = $qid->execute();
if (!$resultat) {
?>
<h3 style="text-align:center; margin:10px 0;">Pas de r&eacute;sultats pour cette recherche</h3>
<?php
} else {
while ($row = $qid->fetch(PDO::FETCH_OBJ)) {
//echo "$row->numMembre";
echo '<BR>';
echo "$row->nom";
echo '<BR>';
echo "$row->telephone";
echo '<BR>';
echo "$row->addresse";
}
}

?>[code]
merci
Bonjour,
Avez-vous obtenu une réponse depuis le 27 septembre ?
J'ai moi-même une question à poser...alors est-ce que ça vaut le coup ? Smiley rolleyes
Modérateur
Apparemment non, mais avec des questions moins cryptiques et bien formulées il y a plus de chances d'obtenir de l'aide Smiley smile
Le nom final du fichier qui regroupe tout ? Si non il faut envisager de changer le paramètre url : 'xmember.php' de l'appel ajax

Par ailleurs le code présenté est sensible aux injections sql. L'usage de la requête préparée avec tableau associatif de l'objet PDO ne s'utilise pas comme ça.

en allant à l'essentiel la base c'est ça :

$Req= "SELECT * FROM CL_CLIENTES WHERE COD_CLIENTE=:numcompte ";
$Params = array("numcompte"=>$_GET['numcompte']);
CNXSQL->prepare($Req); 		
CNXSQL->execute($Params);


Ceci dis je vous conseil de rajouter une surcouche de contrôle à $_GET['numcompte'] les requêtes préparées c'est bien les regex... en amont c'est mieux.

Smiley biggol