PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 23-04-2010 14:22:12

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

PROBLEME ONCLICK

Je suis bloqué depuis une semaine , alors je viens en vous esperant  votre aide je devellope une petite application de recherche php mysql .une fois ma recherche est effectué je recoit le resultat sous un tableau sans probleme maintenant je veut lorsque je clique sur une ligne de mon tableau je dois recuperer la valeur du champs "reference"
et inserer cette valeur et la faire executer sur un formulaire pour afficher un resultat detaillé;
le tableau de resultat de recherche:


<?php require_once('Connections/enqf.php'); ?>
<?php
//
if (isset($_POST['type']))
if (isset($_POST['reference']))
if (isset($_POST['capacite']))
if (isset($_POST['energie']))
if (isset($_POST['marque']))
if (isset($_POST['annee']))
if (isset($_POST['nserie']))
if (isset($_POST['valve']))
if (isset($_POST['location']))
if (isset($_POST['model']))
if (isset($_POST['volt']))
if (isset($_POST['typemat']))
mysql_connect("127.0.0.1","root","");
mysql_select_db ("enaf");

$avance_type = $_POST['type'];
$avance_reference = $_POST['reference'];
$avance_capacite = $_POST['capacite'];
$avance_energie = $_POST['energie'];
$avance_marque = $_POST['marque'];
$avance_annee = $_POST['annee'];
$avance_valve = $_POST['valve'];
$avance_nserie = $_POST['nserie'];
$avance_model = $_POST['model'];
$avance_volt = $_POST['volt'];
$avance_location = $_POST['location'];
$avance_typemat = $_POST['typemat'];

 //

$select ="SELECT * FROM infos_tbl WHERE   type LIKE '%$avance_type%' AND  location LIKE '%$avance_location%'   AND marque LIKE '%$avance_marque%'  AND volt LIKE '%$avance_volt%' AND annee LIKE '%$avance_annee%' AND capacite LIKE '%$avance_capacite%' AND energie LIKE '%$avance_energie%' AND reference LIKE '%$avance_reference%' AND nserie LIKE '%$avance_nserie%' AND model LIKE '%$avance_model%' AND valve LIKE '%$avance_valve%' AND  typemat LIKE '%$avance_typemat%' ";
$result=mysql_query($select)  or die(mysql_error());
$total = mysql_num_rows($result);
 mysql_close();
 
?>

<table width="100%"  border="0">
  <tr>
    <td width="1%" height="102"> </td>
    <td width="33%" bgcolor="#FFFFFF"><div align="right"><img src="logo.JPG" width="256" height="89"></div></td>
    <td width="47%"><p> </p>
    <table width="353" border="0" bordercolor="#0000FF" bgcolor="#0000FF">
      <tr>
        <td bgcolor="#FFFFFF"> <div align="center"><strong> Articles répondants aux critères recherchés </strong></div></td>
      </tr>
    </table>    </td>
    <td width="19%"> <table width="100%"  border="0">
      <tr>
        <td nowrap bgcolor="#FFFFFF"><div align="right"> </div></td>
        <td bordercolor="#FF0000" bgcolor="#FFFFFF">  </td>
      </tr>
    </table>
    <div align="left">
      <p>Nombre<span class="Style1">:<?php echo $total ?></span></p>
      </div></td>
  </tr>
</table>
<table width="100%" border="0" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
  <tr>
    <td height="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> </td>
  </tr>
</table>
<table width="80%"  border="1" align="center" cellspacing="1" bordercolor="#0000FF" bgcolor="#ffffff">
  <tr>
    <td align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center">
  <link rel="stylesheet" href="2col_rightNav.css" charset="ISO-8859-1" type="text/css"/>
  <?php
 if($total) {
   // début du tableau
    echo '<table>'."\n";
        // affichage
        echo '<tr >';
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF"><strong>Type</strong></font></strong></div></b></td>';    //<td><div align="center">ok</div></td>
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF"><strong>Reference</strong></font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Nserie</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Marque</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Model</font></strong></div></b></td>';
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Annee</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Capacite</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Energie</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Typemat</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Valve</font></strong></div></b></td>';
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Volt</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Location</font></strong></div></b></td>';
        echo '</tr>'."\n";
    // lecture et affichage des résultats , 1 résultat par ligne
 

  $gris = false;  
    while($row = mysql_fetch_array($result)) {
      if ($gris) $gris=false; else $gris=true;  
            if ($gris)
      {
     
echo "<tr bgcolor='#E8E8E8'  onclick=\"recup_id('<?php echo $row['id'];?>')\"
 style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\" >"
;
   
      }


      else
      {
      echo "<tr bgcolor='#F8F8F8'     style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\"> ";
      }
        echo '<td >'.$row['type'].'</td>';
    echo '<td >'.$row['reference'].'</td>';
    echo '<td >'.$row['nserie'].'</td>';
    echo '<td >'.$row['marque'].'</td>';
    echo '<td >'.$row['model'].'</td>';
        echo '<td >'.$row['annee'].'</td>';
    echo '<td >'.$row['capacite'].'</td>';
    echo '<td >'.$row['energie'].'</td>';
    echo '<td >'.$row['typemat'].'</td>';
    echo '<td >'.$row['valve'].'</td>';
        echo '<td >'.$row['volt'].'</td>';
    echo '<td >'.$row['location'].'</td>';
    echo "</tr>";
    }
    echo '</div></table id=tableau>'."\n";
    // fin du tableau.
  //
}
else echo 'Pas d\'enregistrements correspondant a votre recherche';
 ?>

    <p> </p>
   
  </div></table>


le formulaire qui une fois executer va m'afficher resultat detaillé est:
<form action= "FicheUpdate2.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend><b></b></legend>
<table> <tr> <td>reference  : </td>
    <td><input name="reference" type="text" value="" size="20" maxlength="10"/></td></tr>
<tr><td>Modifier : </td> <td><input type="submit" value="Modifier"/></td></tr>
</table>
</fieldset>
</form>
 

merci de votre aide j'en ai absolument besoin

Hors ligne

#2 23-04-2010 14:34:54

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : PROBLEME ONCLICK

Bonjour,

Déjà je ne comprends pas la syntaxe de ton début de code, normalement pour chaque if tu dois avoir

if (isset($_POST['type'])){$avance_type = $_POST['type'];}
....

Ensuite pour ton tableau je te suggère pour récupérer l'info recherchée en java dans recup_id(), de créer une id='val_x' par ex dans le champ que tu veux récup (ici une div) et de faire un document.getElementById('val_x') avec la propriété adaptée à ton champ. (pour une div c'est .innerHtml même si tu en as d'autres)
Si tu as des soucis pour savoir quelle ligne tu as sélectionné, crée une colonne supplémentaire avec un checkbox dedans avec comme id ton numéro de ligne.

Dernière modification par Jc (23-04-2010 14:43:33)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 23-04-2010 14:42:19

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

j'essaye d'eviter le java est ce que c'est pas fesable uniquement en php

Hors ligne

#4 23-04-2010 14:48:54

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : PROBLEME ONCLICK

Tu peux toujours le faire en VBscript^^.
Ca sera beaucoup plus lourd en php car ca t'obligera a passer par un formulaire qui devra se passer la variable de sélection à lui meme ex:

fichier frm.php
<form method="post" action="frm.php"></form>

et tu devras inclure le traitement de la variable dans ton fichier du style,

if (!isset($_POST['myVar'])){affiche le formulaire} else {traitement de la variable}

Fut un temps ou je me disais des trucs du style, "le java c'est nul on peut tout faire sans", "c'est pas demain la veille que je ferais du java"... Crois moi sur parole, le javascript c'est I N C O N T O U R N A B L E. Gagne du temps et mets toi y sans plus tarder, ca te fera gagner un temps précieux et tu ne pourras plus t'en passer rapidement^^

Dernière modification par Jc (23-04-2010 14:50:48)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 23-04-2010 14:59:44

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

rien a dire je suis de votre avis

Hors ligne

#6 23-04-2010 15:03:57

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : PROBLEME ONCLICK

Moi pas.

Le PHP ne peut être contré par l'utilisateur, le javascript se désactive lui par contre.
Donc il ne faut jamais omettre le traitement PHP. Le traitement javascript n'est là que pour plus de convivialité et d'interactivité avec l'utilisateur.

Hors ligne

#7 23-04-2010 15:12:07

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

je suis tjs bloqué:
function recup_id(id)
{ location.href=('update2.php?id='+id); }

onclick="recup_id('<?php echo $row['id'];?>')"


MAIS CA DONNE RIEN

Hors ligne

#8 23-04-2010 15:22:25

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PROBLEME ONCLICK

Je partage l'avis de xTG.... même si j'use et abuse du javascript, cela reste EN COMPLÉMENT car tout le monde peut le désactiver (moi le 1er)

function recup_id(id)
{ location.href=('update2.php?id='+id); }
onclick="recup_id('<?php echo $row['id'];?>')"

ta balise php n'est pas au bon endroit !!!!
Ta fonction, c'est du php... alors pourquoi tu dis que seul le paramètre l'est


onclick="<?php echo recup_id($row['id']);?>";
 

MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#9 23-04-2010 15:57:08

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

je suis debutant et j'aimerai bien desactivé le java mais est ce que je peut m'ensortir avec le seul  php? je teste ton code et je te repond tout de suite merci

Hors ligne

#10 23-04-2010 15:59:49

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PROBLEME ONCLICK

Pour conseil, commence par y recourir, mais de suite après, prends le temps de découvrir les parades et comment le contourner avec php

P.S : sympa l'animation du chariot élévateur pour le menu wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#11 23-04-2010 16:00:23

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

je vous refile le code entier et essaye de me dire ou je dois inserer votre ligne:
1.onclick="<?php echo recup_id('.$row['id'].');?>";

voila mon code [NdM : Supprimé pour la lisibilité car reprends le meme code qu'au premier post]

Hors ligne

#12 23-04-2010 16:04:24

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

merci ALNOSS pour ton complement concernant le chariot, cependant je suis toujours bloquer pour mon prb

Hors ligne

#13 23-04-2010 16:05:49

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PROBLEME ONCLICK

1. pense au balise [ code=php] et [ /code] (je l'ai fait sur ton code : c'est quand meme plus clair)

2. où le mettre : là où tu souhaites avoir ton effet.... c'est toi qui décide !

/!\ Attention à tes concaténations !!


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#14 23-04-2010 16:30:07

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

portion de code /

    function recup_id()
  {location.href=('update2.php?id='+id); }

    $gris = false;   
    while($row = mysql_fetch_array($result)) {
            if ($gris) $gris=false; else $gris=true;   
                    if ($gris) {
              echo "<tr bgcolor='#E8E8E8' onclick=""\"<?php lafonctionici ;?>"\" style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\" >";}
            else {
            echo "<tr bgcolor='#F8F8F8' onclick="\<?php lafonction ;?>"\"  style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\"> ";}

Hors ligne

#15 23-04-2010 16:38:05

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PROBLEME ONCLICK

Comme ta ligne est déjà en php, il faut que tu apprennes a concaténer !!


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#16 23-04-2010 16:43:03

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

DESOLE de tout ce derangement en effet il ya a peine 10jours que j'ai commencer a bidouiller avec le php je dois retourner apprendre un peu le cours
merci pour votre aide

Hors ligne

#17 23-04-2010 16:51:50

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK


<?php require_once('Connections/enqf.php'); ?>
<?php
//
if (isset($_POST['type'])) $avance_type = $_POST['type'];
if (isset($_POST['reference'])) $avance_reference = $_POST['reference'];
if (isset($_POST['capacite'])) $avance_capacite = $_POST['capacite'];
if (isset($_POST['energie'])) $avance_energie = $_POST['energie'];
if (isset($_POST['marque'])) $avance_marque = $_POST['marque'];
if (isset($_POST['annee'])) $avance_annee = $_POST['annee'];
if (isset($_POST['nserie'])) $avance_nserie = $_POST['nserie'];
if (isset($_POST['valve'])) $avance_valve = $_POST['valve'];
if (isset($_POST['location'])) $avance_location = $_POST['location'];
if (isset($_POST['model'])) $avance_model = $_POST['model'];
if (isset($_POST['volt'])) $avance_volt = $_POST['volt'];
if (isset($_POST['typemat'])) $avance_typemat = $_POST['typemat'];
mysql_connect("127.0.0.1","root","");
mysql_select_db ("enaf");
$select ="SELECT * FROM infos_tbl WHERE   type LIKE '%$avance_type%' AND  location LIKE '%$avance_location%'   AND marque LIKE '%$avance_marque%'  AND volt LIKE '%$avance_volt%' AND annee LIKE '%$avance_annee%' AND capacite LIKE '%$avance_capacite%' AND energie LIKE '%$avance_energie%' AND reference LIKE '%$avance_reference%' AND nserie LIKE '%$avance_nserie%' AND model LIKE '%$avance_model%' AND valve LIKE '%$avance_valve%' AND  typemat LIKE '%$avance_typemat%' ";
$result=mysql_query($select)  or die(mysql_error());
$total = mysql_num_rows($result);
 mysql_close();
?>
<table width="100%"  border="0">
  <tr>
    <td width="1%" height="102"> </td>
    <td width="33%" bgcolor="#FFFFFF"><div align="right"><img src="logo.JPG" width="256" height="89"></div></td>
    <td width="47%"><p> </p>
    <table width="353" border="0" bordercolor="#0000FF" bgcolor="#0000FF">
      <tr>
        <td bgcolor="#FFFFFF"> <div align="center"><strong> Articles répondants aux critères recherchés </strong></div></td>
      </tr>
    </table>    </td>
    <td width="19%"> <table width="100%"  border="0">
      <tr>
        <td nowrap bgcolor="#FFFFFF"><div align="right"> </div></td>
        <td bordercolor="#FF0000" bgcolor="#FFFFFF">  </td>
      </tr>
    </table>
    <div align="left">
      <p>Nombre<span class="Style1">:<?php echo $total ?></span></p>
      </div></td>
  </tr>
</table>
<table width="100%" border="0" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
  <tr>
    <td height="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> </td>
  </tr>
</table>
<table width="80%"  border="1" align="center" cellspacing="1" bordercolor="#0000FF" bgcolor="#ffffff">
  <tr>
    <td align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center">
  <link rel="stylesheet" href="2col_rightNav.css" charset="ISO-8859-1" type="text/css"/>
  <?php
 if($total) {
   // début du tableau
    echo '<table>'."\n";
        // affichage
        echo '<tr >';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF"><strong>id</strong></font></strong></div></b></td>';    //<td><div align="center">ok</div></td>
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF"><strong>Type</strong></font></strong></div></b></td>';    //<td><div align="center">ok</div></td>
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF"><strong>Reference</strong></font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Nserie</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Marque</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Model</font></strong></div></b></td>';
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Annee</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Capacite</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Energie</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Typemat</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Valve</font></strong></div></b></td>';
        echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Volt</font></strong></div></b></td>';
    echo '<td bgcolor="#3737FF"><b><div align="center"><strong><font color="#FFFFFF">Location</font></strong></div></b></td>';
        echo '</tr>'."\n";
    // lecture et affichage des résultats , 1 résultat par ligne

  function recup_id()
  {location.href=('update2.php?id='+id); }
 
  $gris = false;  
    while($row = mysql_fetch_array($result)) {
      if ($gris) $gris=false; else $gris=true;  
          if ($gris) {
        echo "<tr bgcolor='#E8E8E8' onclick=""\"'.recup_id($row['id']).'"\" style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\" >";}
      else {
      echo "<tr bgcolor='#F8F8F8' onclick="\"'.recup_id($row['id']).'"\"  style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\"> ";}
    echo '<td >'.$row['id'].'</td>';
        echo '<td >'.$row['type'].'</td>';
    echo '<td >'.$row['reference'].'</td>';
    echo '<td >'.$row['nserie'].'</td>';
    echo '<td >'.$row['marque'].'</td>';
    echo '<td >'.$row['model'].'</td>';
        echo '<td >'.$row['annee'].'</td>';
    echo '<td >'.$row['capacite'].'</td>';
    echo '<td >'.$row['energie'].'</td>';
    echo '<td >'.$row['typemat'].'</td>';
    echo '<td >'.$row['valve'].'</td>';
        echo '<td >'.$row['volt'].'</td>';
    echo '<td >'.$row['location'].'</td>';
    echo "</tr>";
    }
    echo '</div></table id=tableau>'."\n";
    // fin du tableau.
  //
}
else echo 'Pas d\'enregistrements correspondant a votre recherche';
 ?>

    <p> </p>
   
  </div></table>
 

Hors ligne

#18 23-04-2010 16:54:11

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PROBLEME ONCLICK

Ligne 82 & 84 : il y a des " de trop

Regarde plutot :

<?php
echo "<tr bgcolor='#E8E8E8' onclick=\"'.recup_id($row['id']).'\" style=\"cursor:pointer;\"  onMouseover=\"this.style.backgroundColor='#99FF99'\"  onmouseOut=\"this.style.backgroundColor=''\" >";}?>

Il serait aussi bon que tu uniformises ton code :
echo "<td>" du coté, echo '<td>' de l'autre.... soit tu choisis l'un, soit l'autre, mais pas tout les 2... c'est brouillon

Enfin, ton <?php echo $total ?> devrait avoir un ; --> <?php echo $total;?>

Ce sera tout pour aujourd'hui, je file wink  !! Consulte un peu le site, tu apprendras bcp des méthodes wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#19 23-04-2010 17:06:38

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

OUI c'est corrigé;
Parse error: syntax error, unexpected '=' in C:\PERSONNEL\EasyPHP-5.3.2\www\search1.php on line 76

Hors ligne

#20 23-04-2010 17:09:40

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME ONCLICK

GRAND MERCI

Hors ligne

Pied de page des forums