Script php + java

Fermé
tounsi - 21 mai 2008 à 15:07
 tounsi - 22 mai 2008 à 08:59
Bonjour à tous,
j'ai une page m'affichant tout une liste d'étudiants et devant chaque étudiant, 'modifier' et 'supprimer'. Pour modifier, pas de problème mais pour la suppression, j'ai rajouté une fonction java afin de confirmer la suppression ou non et celle ci ne prends pas de valeur, donc ma requete de suppression ne marche pas.

la fonction :
<SCRIPT language="JavaScript">
function confirmation()
{
var msg = "Êtes-vous sur de vouloir supprimer cet étudiant ?";
if (confirm(msg))
window.location.replace("suppression.php?numero=<? $val->numéro; ?>");
}
</SCRIPT>

Maintenant, le code en php faisant référence à 'modifier' et à la fonction :

echo("<TR>
<TD>
<a href=\"modification2.php?numéro=".$val->numéro."\">modifier</a> // fonctionne
</TD>
<TD>
<A href=javascript:; onClick=confirmation();>Supprimer</A> // erreur sur suppression.php
</TD>
</TR>") ;

Voile le message d'erreur :
"Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Ligne 2 : syntaxe incorrecte vers '='., SQL state 37000 in SQLExecDirect in C:\wamp\www\stage\CONTACT\suppression.php on line 13
La suppression à échouée"

Mon script suppression.php :

//requête SQL:
$sql = "DELETE FROM Etudiant
WHERE numéro = ".$numéro ;
//exécution de la requête:
$result = odbc_exec($c,$sql);


Une solution?
Merci de votre aide.
A voir également:

6 réponses

Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 2
21 mai 2008 à 15:23
Salut

Je vient de débuter le html,php et javascript il y a juste quelque semaines, mais je pense que ton problème peut venir de là:
("suppression.php?numero=<? $val->numéro; ?>");

Enfin je ne comprend pas trop ce que tu veut faire car si $val est une variable php il aurai fallu mattre "<?php" or il y a juste "<?"

Puis le php s'effectuant coté serveur et le javascript coté client tu ne peut pas mettre de variable php dans du javascript.
Un moyen étant de passer par un <input type="hidden" name="champr" value="<?php echo $val;?>" ></input>
que tu récupère ensuite avec:
var val = document.form.champ.value();

Je suis pas sur du code j'ai pas vérifier mais c'est à peut de chose près cela.

a+
0
Salut, merci de ta réponse. Je ss moi meme débutant mais tu a l'air plus calé que moi.
En faite, dans ma page principale j'ai une requete :
//requête SQL:
$sql="SELECT numéro, nom, prénom, civilité_étudiant_fk, date_naissance
FROM Etudiant
ORDER BY numéro" ;
//exécution de la requête:
$result=odbc_exec($c,$sql);

Ou dois je placer ceci : <input type="hidden" name="champr" value="<?php echo $val;numéro ?>" ></input> ???

Et : var val = document.form.champ.value(); ????

aurais-je toujours mon choix de suppression oui/non ??

merci de ton aide
0
Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 2
21 mai 2008 à 15:48
Tu doit mettre le input dans un formulaire dans ta page html.

J'ai appeller le formulaire "form" et le input "champr" (petite erreur de frappe au passage, lol) d'ou le "document.form.champr.value;". Cela permet de récupéré la valeur d'un champ d'un formulaire pour l'inséré dans une variable javascript.

De plus comme le input est de type hidden il sera invisible.

Le mieux serait de mettre ton code dans un message.
0
voici mon code liste.php :
<html><head><title>modification des étudiants :: partie1</title>
<input name="supprimer" type="hidden" id="supprimer" value="<?php echo $val['numéro']; ?>">
<input name="Submit" type="submit" value="Supprimer">
<SCRIPT language="JavaScript">
function confirmation()
{
var msg = "Êtes-vous sur de vouloir supprimer cet étudiant ?";
if (confirm(msg))
window.location.replace("suppression.php?numero=<?php $val->numéro; ?>");
// window.location.replace("suppression.php?numero=<? $val->numéro; ?>");
}
</script></head>
<body>
<?php
require("connect.php");
if ($c)
//requête SQL:
$sql="SELECT numéro, nom, prénom, civilité_étudiant_fk,
date_naissance, adresse_parents, cp_parents,
ville_parents, tel_parents, adresse_scolaire, cp_scolaire, ville_scolaire,
tel_scolaire, adresse_stage, cp_stage, ville_stage, tel_stage, email, annee_promo,
année_Gphy_étudiant_fk, option_étudiant_fk, login, mdp, test
FROM Etudiant
ORDER BY numéro" ;
//exécution de la requête:
$result=odbc_exec($c,$sql);
?>
<TABLE border=1 >
<?php
//affichage des données:
echo (" <TR>
<TH></TH><TH></TH><TH> Numéro </TH>
<TH> Nom </TH>
<TH> Prénom </TH>
<TH> Civilité </TH>
<TH> Date de naissance </TH>
<TH> Adresse des parents </TH>
<TH> Code postal </TH>
<TH> Ville </TH>
<TH> Telephone des parents </TH>
<TH> Adresse scolaire </TH>
<TH> Code Postal </TH>
<TH> Ville </TH>
<TH> Telephone de l'étudiant </TH>
<TH> Adresse du stage </TH>
<TH> Code Postal </TH>
<TH> Ville </TH>
<TH> Telephone du stage </TH>
<TH> Email </TH>
<TH> Année de la Promo </TH>
<TH> Identifiant de l'année du cursus</TH>
<TH> Option suivie </TH>
<TH> Login </TH>
<TH> Mot de passe </TH> <TH> test </TH>
</TR>");
while( $val = odbc_fetch_object($result))
{
echo("<TR><TD><a href=\"modification2.php?numéro=".$val->numéro."\">modifier</a></TD>
<TD><A href=javascript:; onClick=confirmation();>Supprimer</A> </TD>
<TD><div align=\"center\">".$val->numéro."</TD>
<TD>".$val->nom."</TD><TD>".$val->prénom."</TD>
<TD>".$val->civilité_étudiant_fk."</TD><TD>".$val->date_naissance."</TD>
<TD>".$val->adresse_parents."</TD><TD>".$val->cp_parents."</TD>
<TD>".$val->ville_parents."</TD><TD>".$val->tel_parents."</TD>
<TD>".$val->adresse_scolaire."</TD><TD>".$val->cp_scolaire."</TD>
<TD>".$val->ville_scolaire."</TD><TD>".$val->tel_scolaire."</TD>
<TD>".$val->adresse_stage."</TD><TD>".$val->cp_stage."</TD>
<TD>".$val->ville_stage."</TD><TD>".$val->tel_stage."</TD>
<TD>".$val->email."</TD><TD>".$val->annee_promo."</TD>
<TD>".$val->année_Gphy_étudiant_fk."</TD><TD>".$val->option_étudiant_fk."</TD>
<TD>".$val->login."</TD><TD>".$val->mdp."</TD><TD>".$val->test."</TD>
</TR>") ;
}
?>
</TABLE>
</body>
</html>

Le code suppression.php :
<html><head><title>supression des étudiants </title></head>
<body>

<?php
require("connect.php");
if ($c)
//récupération de la variable d'URL, qui va nous permettre de savoir quel étudiant supprimer
$numéro = $_GET["numéro"] ;
//requête SQL:
$sql = "DELETE FROM Etudiant
WHERE numéro = ".$numéro ;
//exécution de la requête:
$result = odbc_exec($c,$sql);
if($result)
{
echo("suppression terminée") ;
}
else
{
echo("La suppression à échouée") ;
}
?>
<br><center><a href="etudiant.php"> RETOUR </a></center>
</body>
</html>

Merci.
0
Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 2
21 mai 2008 à 16:13
Je pense que le seul problème est que tu met une variable php ($val) dans ton javascript. J'ai juste un peu modifier le code de liste.php:

<html><head><title>modification des étudiants :: partie1</title>
<input name="supprimer" type="hidden" id="supprimer" value="<?php echo $val['numéro']; ?>">
<input name="Submit" type="submit" value="Supprimer">
<SCRIPT language="JavaScript">
function confirmation(val)
{
var msg = "Êtes-vous sur de vouloir supprimer cet étudiant ?";
if (confirm(msg))
window.location.replace("suppression.php?numero="+val);
}
</script></head>
<body>
<?php
require("connect.php");
if ($c)
//requête SQL:
$sql="SELECT numéro, nom, prénom, civilité_étudiant_fk,
date_naissance, adresse_parents, cp_parents,
ville_parents, tel_parents, adresse_scolaire, cp_scolaire, ville_scolaire,
tel_scolaire, adresse_stage, cp_stage, ville_stage, tel_stage, email, annee_promo,
année_Gphy_étudiant_fk, option_étudiant_fk, login, mdp, test
FROM Etudiant
ORDER BY numéro" ;
//exécution de la requête:
$result=odbc_exec($c,$sql);
?>
<TABLE border=1 >
<?php
//affichage des données:
echo (" <TR>
<TH></TH><TH></TH><TH> Numéro </TH>
<TH> Nom </TH>
<TH> Prénom </TH>
<TH> Civilité </TH>
<TH> Date de naissance </TH>
<TH> Adresse des parents </TH>
<TH> Code postal </TH>
<TH> Ville </TH>
<TH> Telephone des parents </TH>
<TH> Adresse scolaire </TH>
<TH> Code Postal </TH>
<TH> Ville </TH>
<TH> Telephone de l'étudiant </TH>
<TH> Adresse du stage </TH>
<TH> Code Postal </TH>
<TH> Ville </TH>
<TH> Telephone du stage </TH>
<TH> Email </TH>
<TH> Année de la Promo </TH>
<TH> Identifiant de l'année du cursus</TH>
<TH> Option suivie </TH>
<TH> Login </TH>
<TH> Mot de passe </TH> <TH> test </TH>
</TR>");
while( $val = odbc_fetch_object($result))
{
echo("<TR><TD><a href=\"modification2.php?numéro=".$val->numéro."\">modifier</­a></TD>
<TD><A href=javascript:; onClick=confirmation(".$val->numéro.");>Supprimer</A> </TD>
<TD><div align=\"center\">".$val->numéro."</TD>
<TD>".$val->nom."</TD><TD>".$val->prénom."&­lt;/TD>
<TD>".$val->civilité_étudiant_fk."</TD><TD>".$val-&­gt;date_naissance."</TD>
<TD>".$val->adresse_parents."</TD><TD>".$val->cp­_parents."</TD>
<TD>".$val->ville_parents."</TD><TD>".$val->tel_­parents."</TD>
<TD>".$val->adresse_scolaire."</TD><TD>".$val->c­p_scolaire."</TD>
<TD>".$val->ville_scolaire."</TD><TD>".$val->tel­_scolaire."</TD>
<TD>".$val->adresse_stage."</TD><TD>".$val->cp_s­tage."</TD>
<TD>".$val->ville_stage."</TD><TD>".$val->tel_st­age."</TD>
<TD>".$val->email."</TD><TD>".$val->annee_promo.­"</TD>
<TD>".$val->année_Gphy_étudiant_fk."</TD><TD>".$val­->option_étudiant_fk."</TD>
<TD>".$val->login."</TD><TD>".$val->mdp."&l­t;/TD><TD>".$val->test."</TD>
</TR>") ;
}
?>
</TABLE>
</body>
</html>


Pour résumé j'ai mis $val->numéro en paramettre de ta fonction confirmer, puis en javascript tu récupère cette valeur et je l'insère dans l'adresse comme tu a fait pour avoir un $_GET.
Cette méthode est plus simple que le input.

voila jespère que sa marchera, donc il faut retenir qu'on ne peut pas mettre du php dans du javascript.
a+
0

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

Posez votre question
Merci beaucoupppp
je n'ai plus la même erreur que tout a l'heure

maintenant il me sort : "Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Erreur de conversion du type de données varchar en bigint., SQL state 37000 in SQLExecDirect in C:\wamp\www\stage\CONTACT\suppression.php on line 13
La suppression à échouée"

mais je vais réussir a résoudre çà demain car là il est 16h30, et a 16h30, le taf c'est finish lol

en tout cas, merci beaucoup à toi !
0
RESOLU

Tout rouleeeeeeeee, merciiii
0