Php et javascript
Fermé
Je tente désespéremment de trouver une solution à mon problème! Je dispose d'un formulaire dans lequel j'ai un champ de texte et je veux qu'après avoir entré une valeur dans ce champ renseigner deux autres champs de texte à partir d'une base de données. Je ne parviens pas à récupérer la valeur de ce champ en php mais j'y arrive en javascript. Mais pour renseigner les valeurs des deux autres champs j'utilise des bases de données en php. Est-ce qu'il est possible de mélanger du php et du javascript ? J'ai essayé mais je n'y suis pas parvenue. Si quelqu'un connait une solution j'en serais ravie. En espérant avoir été claire, merci d'avance
A voir également:
- Php et javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Node.js javascript runtime virus ✓ - Forum Virus
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Erreur #125 javascript - Forum Mozilla Firefox
7 réponses
bonjour,
tout d'abord ne pas confondre langage serveur et langage client
php est un langage serveur, javascript un langage client
donc php est exécuté coté serveur, javascript dans ta page html .
php peut générer du javascript si tu veux..
enfin,
pour récupérer la valeur d'un chp text, c'est simple tu appelles $nom_champ dans une page php, mais il faut que tu ais envoyé ton formulaire contenant ton champ.
ensuite, pour mettre les deux valeurs de ta base ds les chps texte que tu souhaites, tu crés une page php ds laquelle tu récupéres les valeurs souhaitées. Puis à la dans ton code html de tes champs texte, tu places le résultat de ta recherche :
<input type=text name=text1 value=<? echo $result["champ1"] ?>>
<input type=text name=text2 value=<? echo $result["champ2"] ?>>
voila
en espérant avoir répondu à ton probleme
tout d'abord ne pas confondre langage serveur et langage client
php est un langage serveur, javascript un langage client
donc php est exécuté coté serveur, javascript dans ta page html .
php peut générer du javascript si tu veux..
enfin,
pour récupérer la valeur d'un chp text, c'est simple tu appelles $nom_champ dans une page php, mais il faut que tu ais envoyé ton formulaire contenant ton champ.
ensuite, pour mettre les deux valeurs de ta base ds les chps texte que tu souhaites, tu crés une page php ds laquelle tu récupéres les valeurs souhaitées. Puis à la dans ton code html de tes champs texte, tu places le résultat de ta recherche :
<input type=text name=text1 value=<? echo $result["champ1"] ?>>
<input type=text name=text2 value=<? echo $result["champ2"] ?>>
voila
en espérant avoir répondu à ton probleme
L'erreur que j'obtiens c'est : "Erreur = Exécution de la requete Something is wrong in your syntax près de '' à la ligne 1"
Mon fichier s'appelle maquette.php. Ci-dessous tu trouveras le code qui génère cette erreur.
Mon code source :
<form method = "post" action ="maquette.php">
<p align="left"> Numéro d'Agent :
<input type="text" name="NumAgent" size="5" maxlength="5" value ="0">
<input type="submit" name="ValideNA" value="Ok">
<?php
$res = traiteNumAgent();
function traiteNumAgent(){
$NumAgent = $_POST['NumAgent'];
$server = 'localhost';
$user = 'root';
$pass = '';
mysql_connect($server, $user, $pass) or die("VerifNumAgent : Erreur de connexion\n ".mysql_error());
$db = "gestinter";
mysql_select_db($db) or die("VerifNumAgent() : Erreur = Base inexistante\n ".mysql_error());
$sql = "SELECT code_ges, porte FROM Agent where num = $NumAgent;";
$query = mysql_query($sql) or die("traiteNumAgent() : Erreur = Exécution de la requete\n ".mysql_error());
//On récupère les résultats
if($data = mysql_fetch_array($query)){
$CodeService = $data[0];
$NumPorte = $data[1];
}
else
echo "verifNumAgent : Erreur = le numéro d'agent est incorrect<BR>";
mysql_close();
return array($CodeService, $NumPorte, $NumAgent);
}
?>
Voilà, merci
</p>
<p align="left"> Code Service :
<input type="text" name="CodeService" readOnly value = <?echo $res[0];?> >
Numéro Porte :
<input type="text" name="NumPorte" readOnly value = <?echo $res[1];?>>
</p>
</form>
Mon fichier s'appelle maquette.php. Ci-dessous tu trouveras le code qui génère cette erreur.
Mon code source :
<form method = "post" action ="maquette.php">
<p align="left"> Numéro d'Agent :
<input type="text" name="NumAgent" size="5" maxlength="5" value ="0">
<input type="submit" name="ValideNA" value="Ok">
<?php
$res = traiteNumAgent();
function traiteNumAgent(){
$NumAgent = $_POST['NumAgent'];
$server = 'localhost';
$user = 'root';
$pass = '';
mysql_connect($server, $user, $pass) or die("VerifNumAgent : Erreur de connexion\n ".mysql_error());
$db = "gestinter";
mysql_select_db($db) or die("VerifNumAgent() : Erreur = Base inexistante\n ".mysql_error());
$sql = "SELECT code_ges, porte FROM Agent where num = $NumAgent;";
$query = mysql_query($sql) or die("traiteNumAgent() : Erreur = Exécution de la requete\n ".mysql_error());
//On récupère les résultats
if($data = mysql_fetch_array($query)){
$CodeService = $data[0];
$NumPorte = $data[1];
}
else
echo "verifNumAgent : Erreur = le numéro d'agent est incorrect<BR>";
mysql_close();
return array($CodeService, $NumPorte, $NumAgent);
}
?>
Voilà, merci
</p>
<p align="left"> Code Service :
<input type="text" name="CodeService" readOnly value = <?echo $res[0];?> >
Numéro Porte :
<input type="text" name="NumPorte" readOnly value = <?echo $res[1];?>>
</p>
</form>
Je voulais savoir s'il était possible de pouvoir mélanger du php avec du javascript et si oui comment ? Si t'as un exemple
pour répondre à ta question(mélanger php avec javascript), ce que j'ai déjà fait en partie ci-dessus : de façon direct , non, php s'exécute coté serveur, javascript coté client donc aucun rapport entre les codes.
Mais tu peux placer ton code php avec du code javascript comme tu le ferais avec le code html tout en sachant que le premier sera exécuté avant le second.
tu peux avoir ceci (remplir les données d'une base dans un tableau javascript):
<script>
var t=new Array();
<? for($i=0;$i<sizeof($result);$i++) echo "t[$i]=".$result[$i].";\n";?>
</script>
tu obtiendras :
<script>
var t=new Array();
t[0]="contenu0";
t[1]="contenu1";
t[2]="contenu2";
etc...
</script>
pour ton erreur vérifis si tu récupére bien numAgent
fais un echo de ta requéte.
A@++
Mais tu peux placer ton code php avec du code javascript comme tu le ferais avec le code html tout en sachant que le premier sera exécuté avant le second.
tu peux avoir ceci (remplir les données d'une base dans un tableau javascript):
<script>
var t=new Array();
<? for($i=0;$i<sizeof($result);$i++) echo "t[$i]=".$result[$i].";\n";?>
</script>
tu obtiendras :
<script>
var t=new Array();
t[0]="contenu0";
t[1]="contenu1";
t[2]="contenu2";
etc...
</script>
pour ton erreur vérifis si tu récupére bien numAgent
fais un echo de ta requéte.
A@++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Quand j'affiche la requete ca me donne :
SELECT code_ges, porte FROM Agent where num = ;
Comme tu l'auras constaté il ne reconnait pas le numero de l'agent car "num = ;" mais c'est normal puisque c'est au lancement du formulaire et il n'y a pas de valeur dans le champ.
J'ai ajouté la valeur 0 par défaut au champ texte NumAgent, mais ça ne marche toujours pas !
SELECT code_ges, porte FROM Agent where num = ;
Comme tu l'auras constaté il ne reconnait pas le numero de l'agent car "num = ;" mais c'est normal puisque c'est au lancement du formulaire et il n'y a pas de valeur dans le champ.
J'ai ajouté la valeur 0 par défaut au champ texte NumAgent, mais ça ne marche toujours pas !
c'est normal, $_POST['NumAgent'] n'est tjr pas renseigné étant donné que le formulaire n'a pas encore été envoyé.
il faut que tu testes $_POST['NumAgent'] :
if(!$_POST['NumAgent']) $NumAgent=0;
else $NumAgent=$_POST['NumAgent'];
puis dans requete :
$sql="select ...... where num=$NumAgent";
essais ca
A@++
il faut que tu testes $_POST['NumAgent'] :
if(!$_POST['NumAgent']) $NumAgent=0;
else $NumAgent=$_POST['NumAgent'];
puis dans requete :
$sql="select ...... where num=$NumAgent";
essais ca
A@++
rien de plus simple mon ami,
<select name=liste>
<option> Choisissez ....
<?
$rs=mysql_query("ta requete");
while($result=mysql_fetch_array($rs,MYSQL_ASSOC)) {
echo "<option value=".$result["ton_champ"].">".$result["ton_champ"];
}
?>
</select>
A ton service
A@++
<select name=liste>
<option> Choisissez ....
<?
$rs=mysql_query("ta requete");
while($result=mysql_fetch_array($rs,MYSQL_ASSOC)) {
echo "<option value=".$result["ton_champ"].">".$result["ton_champ"];
}
?>
</select>
A ton service
A@++
16 juil. 2003 à 11:49
merci
16 juil. 2003 à 12:12
tu veux effectuer une recherche dans ta base à partir d'un champ texte?
pour te repondre plus amplement, j'attend tes erreurs, voir tes sources php.
A@++