Probleme variable Php

Résolu/Fermé
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 - 8 juin 2011 à 11:29
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 - 8 juin 2011 à 12:28
Bonjour,
j'ai un souci avec des variables. Alors voila :

Ma première page affiche tout les noms des voitures de ma DB. Lorsque j'en choisi une je renvoi sur une autre page qui elle affiche toutes les caractéristiques de la voiture sélectionnée. Pour faire cette manipulation je place l'id de la voiture sélectionner dans mon URL (https://www.pagesjaunes.fr/?voiture=1)

Jusque la tout va bien.

Sauf que sur la deuxième page on peut modifier les caractéristiques de la voiture.

Avant d'effectuer ma requête update je vérifie que tout les champs ne sont pas vides.

Et la est mon problème !!!

Si un champ est vide j'affiche une alert (JavaScript) sauf qu'après le navigateur recharge la deuxième page mais SANS les variables de l'URL donc ERREUR!!! (http://www.monsite.fr)

Il me faudrait donc un moyen de vérification sans recharger la page.

Merci de votre aide



10 réponses

Oui avec les variables
$_SERVEUR
print_r($_SERVER);


et choisi celle qui te convient
1
$_SERVER['PHP_SELF'] est pas mal
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 juin 2011 à 12:17
Bonjour,

Le problème, c'est que tu fais ta vérification au niveau PHP, donc après que le navigateur a demandé l'appel de la nouvelle page au serveur.
Pour bien faire, il faudrait faire la vérification en javascript, avant que l'appel ne soit lancé.
Pour ça, je te propose le code suivant :
<?php
$sql="SELECT * FROM voiture WHERE Id=".$_GET['id']." ";
$resultat=odbc_do($cnx, $sql) or die( odbc_error() );
$gestion=odbc_fetch_array($resultat);

if(isset($_POST['ok']))
{
    $caracteristique = $_POST['caracteristique'];
    if(!empty($caracteristique))
    {
        $sql2="UPDATE voiture SET caracteristique='".$_POST['caracteristique']."' WHERE Id=".$_GET['id']." ";
        $resultat2=odbc_do($cnx, $sql2) or die( odbc_error() );
    }
}
?>

<form id="monform" name="form1" method="POST" action="page2.php" onsubmit="if(document.getElementsByName('caracteristique')[0].value == '') {alert('Champ Vide !'); return false; }">
    <label><textarea name="caracteristique"></textarea></label>
    <label><input type="submit" name="ok" value="Valider" /></label>
</form>

J'ai laissé quand même la vérification PHP sur les caractéristiques non vide, pour éviter que le javascript ne soit contourné...

Xavier
1
C'est juste, bien vu
0
Bonjour
En mettant
return false;
à la fin de votre fonction JavaScript ?
0
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 4
8 juin 2011 à 11:38
Non cela ne marche pas. Il recharge toujours la page mais sans les variables de l'URL

:(
0

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

Posez votre question
Je peux voire le code ?
0
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 4
8 juin 2011 à 11:54
<?php
$sql="SELECT * FROM voiture WHERE Id=".$_GET['id']." ";
$resultat=odbc_do($cnx, $sql) or die( odbc_error() );
$gestion=odbc_fetch_array($resultat);

if(isset($_POST['ok']))
{
    $caracteristique = $_POST['caracteristique'];
    if(empty($caracteristique))
    {
        echo '<script type="text/javascript">alert("Champ Vide !");</script>';
    }
    else
    {
        $sql2="UPDATE voiture SET caracteristique='".$_POST['caracteristique']."' WHERE Id=".$_GET['id']." ";
        $resultat2=odbc_do($cnx, $sql2) or die( odbc_error() );
    }
}
?>

<form id="monform" name="form1" method="POST" action="page2.php">
    <label><textarea name="caracteristique"></textarea></label>
    <label><input type="submit" name="ok" value="Valider" /></label>
</form>
0
Essayez:

if(empty($caracteristique))
    {
        echo '<script type="text/javascript">alert("Champ Vide !");</script>';
        exit;
    }
0
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 4
8 juin 2011 à 12:10
Cela ne marche pas, il m'affiche une page blanche.

Est-il possible de récupérer l'URL complète avec les variables pour la mettre dynamiquement dans le paramètre "action" du form. Car quand j'effectue le form il va a la page "page2.php "??
0
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 4
8 juin 2011 à 12:27
J'ai remplacé par ceci et sa marche

<form id="monform" name="form1" method="POST" action="<?php echo $monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" >


Merci beaucoup pour votre aide, Merci. C'est grâce a cette entraide que sa donne envie de continuer à développer.
0
lemex Messages postés 122 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 9 juin 2011 4
8 juin 2011 à 12:28
Sinon la méthode de Reivax962 fonctionne aussi.

Merci beaucoup
0