8797 sujets

Développement web côté serveur, CMS

Bonjour

J’ai un petit souci de code que je n’arrive pas à résoudre

L’idée de la page web en PHP est de pouvoir modifier un article dans une base de donnée.

J’ai un menu déroulant qui liste les différentes pizza et des champs à renseigner pour effectuer les modifications
Ensuite avec la valeur update je modifie la base de données

Cette partie fonctionne correctement

Le problème est que si je ne modifie pas un champ ex : modification du prix sans modification de la description ma description est modifier par du vide.

La solution que je trouve est de faire un écho dans le value par défaut de mon champ pour me redescendre les infos actuellement en base avant de les modifier.

Mon souci est que lorsque je sélectionne ma pizza à modifier ma page ne s’actualise pas donc les informations à modifier n’apparaissent pas

Avez-vous une idée ?, j’espère avoir était clair ..

Voici mon code :



<html>
<head>
<? 
// connection bdd est requete sur la table
include("../connectbdd.php");
$requete2="select * from pizza" ;
$result2=@mysql_query($requete2) ;
mysql_close();

?> 
<SCRIPT LANGUAGE="JavaScript">
           <!--
           function stopError() {
             return true;
           }
           window.onerror = stopError;
           // -->       
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE=JavaScript>
function ejs_img_fx(img){	
	if(img && img.filters && img.filters[0]){
		img.filters[0].apply();
		img.filters[0].play();
	}
}
</SCRIPT>
</style>
</head>
<body alink="#000000" text="#000000" link="#000000" vlink="#000000">
<form name="upload" enctype="multipart/form-data" method="post" action="">
  <div align="center">
    <p>&nbsp;</p>
    <table width="534" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr bgcolor="#6E4D06">
        <td width="100%" height="20" background="../images/bloc_float_h1.jpg" bgcolor="#FFFFFF"><div align="center"><b>  <font color="#6E4D06" size="-1" face="Verdana, Arial, Helvetica, sans-serif"> </font> </b></div></td>
      </tr>
      <tr bgcolor="#6E4D06">
        <td width="100%" align="center" valign="middle" bgcolor="#FFFFFF"><table width="542" border="0" cellspacing="0" cellpadding="4" align="center" height="28" bordercolor="#000000">
            <tr>
              <td height="14" align="center" valign="middle" bordercolor="#FFFFFF" background="../images/fndprod.jpg"><table width="98%" border="0" cellspacing="0">
                  <tr>
                    <td bgcolor="#CADE7B"><div align="center"></div>                      
                      <table width="592" border="0" align="center">
                        <tr>
                          <td width="591" class="Style1"><p align="center"><strong><em> Voici le formulaire de modification  des pizzas:
                                      <input type="hidden" name="config12">
                                      <br>
                                      <br>
                            </em></strong></p>
                              <table width="95%"  border="0">
                                <tr>
                                  <td class="Style6"> <div align="center">
            <select name="nom" id="nom">
				
													    <?php
				// ligne permettant de mettre un champ vide au debut du formulaire est faire une verification dessus
				  echo '<option value"vide">Veuillez selectionner la pizza &agrave; modifier</option>' ;
				   // boucle permettant de lister l'ensemble des elements du champ nom dans le formulaire
				  while ( $resultm = mysql_fetch_array( $result2) )
				  {
				  echo '<option value"'.$resultm['nom'].'">'.$resultm['nom'].'</option>' ;
				  }
				   // boucle permettant de lister l'ensemble des elements du champ nom dans le formulaire
				  ?>
                                      </select>
                                  </div></td>
                                </tr>
                                <tr>
                                  <td class="Style6"><div align="center">Veuillez saisir le nouveau prix de la petite pizza :
                                    <input name="prixp" type="text" id="prixp" value="<? echo $resultm['pizzap']; ?>" size="25">
                                  </div></td>
                                </tr>
                                <tr>
                                  <td class="Style6"><div align="center">Veuillez saisir le nouveau prix de la grande pizza:
                                    <input name="prixg" type="text" id="prixg" value="<? echo $resultm['pizzag']; ?>" size="25">
                                  </div></td>
                                </tr>
                                <tr>
                                  <td class="Style6"><div align="center">Veuillez s&eacute;l&eacute;ctionner la nouvelle image :
                                      <input name="file" type="file" size="20">
                                  </div></td>
                                </tr>
                                <tr>
                                  <td class="Style6"><div align="center">Veuillez indiquer la nouvelle description :
                                      <br>
                                      <textarea name="description" cols="50" rows="5" id="description"><? echo $resultm['description']; ?></textarea>
                                  </div></td>
                                </tr>
                            </table>
                              <p align="center">
                                <input type="submit" name="bouton_submit" onClick="" value="Valider la modification">
                                <input type="reset" name="Submit222" value="Effacer">
<br>
                            </p></td>
                        </tr>
                      </table>                      </td>
                  </tr>
              </table></td>
            </tr>
            <tr>
              <td width="487" height="25" align="center" valign="middle" bordercolor="#FFFFFF" background="../images/basprod.jpg">&nbsp;</td>
            </tr>
        </table></td>
      </tr>
    </table>
    <p align="center"></p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>

<p>&nbsp;</p>

<?php
// formulaire upload de l'image
$DESTINATION_FOLDER = $_POST["/imarticles"];							
$MAX_SIZE = 10000000;		
$date =date("d-m-Y");											
$AUTH_EXT = array(".jpg", ".png", ".bmp", ".gif", ".jpeg");	
function isExtAuthorized($ext){
	global $AUTH_EXT;
	if(in_array($ext, $AUTH_EXT)){
		return true;
	}else{
		return false;
	}
}
if(!empty($_FILES["file"]["name"])){
	$nomFichier = $_FILES["file"]["name"] ;
	$nomTemporaire = $_FILES["file"]["tmp_name"] ;
	$typeFichier = $_FILES["file"]["type"] ;
	$poidsFichier = $_FILES["file"]["size"] ;
	$poidsFichierK = $poidsFichier/1024;
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
	$codeErreur = $_FILES["file"]["error"] ;
	$extension = strrchr($nomFichier, ".");
	if($poidsFichier <> 0){
		if($poidsFichier < $MAX_SIZE){
			if(isExtAuthorized($extension)){
				$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$date.$nomFichier);   // lefichier upload&eacute; prends le nom la date + le nom du fichier
				if($uploadOk){
					                    $urlimage = "imarticles/$date$nomFichier" ; // url vers l'image
									
				}else{
					echo("L'upload a échoué !<br><br>");
				}
			}else{
				echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
			}
		}else{
			$tailleKo = $MAX_SIZE / 1000;
			echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
		}		
	}else{
		echo("Le fichier choisi est invalide !<br>");
	}
}else{
	echo("");
}
// formulaire upload de l'image
?>
<? 
// si variable nom different de vide alors ont fait la modification en bdd
if ($nom!='vide'){
include("../connectbdd.php");
$requete = "update pizza set prixp='$prixp',prixg='$prixg',images='$urlimage',description='$description' where nom='$nom'";
mysql_query($requete);
mysql_close();
}
?>  

</div>
</form>
</body>
</html>


Je ne suis pas sûr d'avoir compris ta question.
Afin de mieux y répondre pourrais-tu me dire où initialises tu les variables de ta requête ?

$requete = "update pizza set prixp='$prixp',prixg='$prixg',images='$urlimage',description='$description' where nom='$nom'";

PS : <script type="text/javascript"> <!-- function stopError() { return true; } window.onerror=stopError; --> </script> <!-------------- C'est pas très joli.
Modifié par Su4p (02 Mar 2012 - 00:55)
apres recherche , je pense qu'il faut passer par de l'ajax pour pouvoir synchroniser

Ce que j ai besoin c’est que les champs dynamique se mettent à jour automatiquement lorsque je fais une sélection dans le menu déroulant sans uploader.