Page 1 sur 1

comment passer la variable de l'iframe dans le formulaire ?

Posté : 13 sept. 2005, 11:13
par goupil
bonjour,

Pour des raisons d'esthétisme j'ai du inséré un iframe appelé "iframe.php", contenant une variable nomée 'picto' issue d'une BDD, dans une page "formulaire.php" où se trouve le bouton submit qui enregistre les données dans la BDD. le problème est que je n'arrive pas à récupérer la variable issue de l'iframe "iframe.php" pour valider la forme. La valeur 'picto' ne semble pas être prise en compte meme si l'iframe est bien entre les balises <form>
On m'a conseillé de passer par le javascript mais là je sais pas....

un petit appercu de ma page : http://www.webgoupil.com/essaiportail/formulaire.php

Merci mille fois d'avance si qqnn peut m'aider !!

voici le code caricaturé de "iframe.php"
<?php require_once('Connections/goupil.php'); ?>
<?php
mysql_select_db($database_goupil, $goupil);
$query_lst_avatars = "SELECT * FROM avatars";
$lst_avatars = mysql_query($query_lst_avatars, $goupil) or die(mysql_error());
$row_lst_avatars = mysql_fetch_assoc($lst_avatars);
$totalRows_lst_avatars = mysql_num_rows($lst_avatars);
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php do { ?>
<img src="./images/avatars/<?php echo $row_lst_avatars['avatars']; ?>" width="60" height="60" align="absmiddle">
<input type="radio" name="picto" value="<?php echo $row_lst_avatars['avatars']; ?>">
<?php } while ($row_lst_avatars = mysql_fetch_assoc($lst_avatars)); ?>
</body>
</html>
<?php
mysql_free_result($lst_avatars);
?> 
et le code du formulaire.php
<?php require_once('Connections/goupil.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
  $editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}

if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO essai (nom) VALUES (%s)",
                       GetSQLValueString($HTTP_POST_VARS['nom'], "text"));

  mysql_select_db($database_goupil, $goupil);
  $Result1 = mysql_query($insertSQL, $goupil) or die(mysql_error());
}
?>
<html>
<head>
<title>formulaire 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="POST" action="<?php echo $editFormAction; ?>">
  <p> nom :
    <input name="nom" type="text" id="nom">
  </p>
  <p>
    <iframe src="iframe.php" name="essai" width=60% height=60 > </iframe>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

Posté : 14 sept. 2005, 12:41
par Elie
Met deja tes boutons radio dans un <FORM> apres tu fais un truc du genre !

Code : Tout sélectionner

var value_du_bouton_radio = window.nom_de_l_iframe.formulaire.picto.value;

et après ????

Posté : 15 sept. 2005, 10:11
par goupil
merci Elie,

je vois bien ce que tu veux dire :

j'ai donc mis mon radiobouton (nommé radiobouton ) avec pour valeur l'echo de ma BDD (
<?php echo $row_lst_avatars['avatars']; ?>
), dans un formulaire (nommé lui form2). Mon iframe s'appelle iframe.php.

dans ma page formulaire.php ( la page principale donc ), j'ai donc le formulaire (form1) qui me servira a enregistrer dans ma BDD. Une des valeur de ma BDD se nomme 'picto' et doit prendre la valeur de mon 'radiobouton'. j'appelle mon iframe.php dans ma page principale.....

le code que tu préconise :
var value_du_bouton_radio = window.nom_de_l_iframe.formulaire.picto.value;
J'ai essayé de l'intégrer dans ma page formulaire.php, mais c la Kata !
je sais pas ou l'insérer et réécrire le code avec les noms que j'ai attribué à mes champs ou valeurs (radiobouton, champ caché pour le 'picto'

j'avais fait un truc du genre
var picto = window.iframe.php.form2.radiobouton.<?php echo $row_lst_avatars['avatars']; ?>;
mais visiblement c'est pas du tout ca, g du tout mélanger et je sais pas ou mettre ce code dans ma page formulaire.php : dans le formulaire, avant, après ? est-ce que var ne devrait pas s'appeler $var , enfin je sais pas je suis perdu, je suis foutu, je vais me pendre.....

Elie , stp, coupe cettre corde qui me sert le cou ...
:(

vraiment personne pour m'aider ?

Posté : 19 sept. 2005, 17:15
par goupil
je patauge toujours et je trouve pas de solution a mon pb !

Si qqnn a une idée, ca serait vraiment super !

merci d'avance :D