Je suis un grand débutant en Javasript (programmation aussi), je bloque sur un
probleme que beaucoup trouverons très simple (mais moi pas), voila je souhaite
récupéré la valeur d'un bouton radio.
Pour faire simple, je liste le contenu d'une table de données Mysql, je
recupere un ensemble de résultats (ligne), et je
souhaite récupérer les valeurs $data['cel'] et $data['code']' grâce a un bouton
radio.
Mais après lecture de tutaux et forum, je n'y arrive pas je bloque pour le
moment, et je ne vois pas comment faire.
Donc si vous avez une idée une suggestion je vous remercie par avance.
Voila le code:
<html>
<title>cellule</title>
<script language="JavaScript">
function f()
{
var obj = document.getElementById("radio1")
alert('le champ a pour valeur : "'+obj.value+"'")
}
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$bd = 'test';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($bd) or die ('Erreur :'.mysql_error());
if(isset($_POST) && !(empty($_POST["recherche"]))) {
extract($_POST);
$requete = "SELECT * FROM TAB WHERE code LIKE '00%".$recherche."' LIMIT 0,12";
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
echo 'nombres d\'enregistrement : ';
echo $total;
echo '
';
echo '
';
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo ''.\"\n\";
// première ligne on affiche les titres code et surnom dans 2 colonnes
echo '----
';
echo 'cel, ';
echo 'code, ';
echo ''.\"\n\";
// lecture et affichage des résultats sur x colonnes, 1 résultat par ligne.
while($data = mysql_fetch_array($result)) {
echo '----
';
echo ''.$data['cel'].', ';
echo ''.$data['code'].', ';
echo ''.\"\n\";
}
echo '
'."\n"; // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result); // on libère le résultat
}
?>
</form>
</html>
<script language="JavaScript">
var TimerId = -1;
function ResetTimeout()
{
if (TimerId != -1)
{
window.clearTimeout(TimerId);
} TimerId setTimeout("document.location 'find.php?'", 2*60*1000); //timer de rafraichissement de 2mn apres le dernier evenement souris de l'utilisateur (le timer se reinitialise a chaque mouvement)
}
</script>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 déc. 2008 à 16:45
tu as tout pour faire...
tu sais accéder à une ligne
( id ou tableau_rows[n° de ligne] ou ... )
tu sais accéder à une colonne
( id ou id_ligne.cells[n° colonne] ou tableau.rows[n° de ligne].cells[n° colonne] ou ...
innerHTML , c'est le contenu... )
les autres infos sont dans l'exemple donné y compris dans le script
tableau.rows.length
nombre de lignes
tableau.rows[n° ligne].cells.Length
nombre de colonnes dans la ligne
tableau.rows[n° ligne].cell[n° colonne].???
accès à une cellule
par exemple : tableau.rows[0].cell[0].style.display
tableau.rows[0].cell[0].style.innerHTML ...
...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 déc. 2008 à 09:02
bonjour,
on va se répéter... pour la 658474935 fois au moins (?)
comment on devine le contenu des $variables ? celui de la base de données ?
c'est UN EXTRAIT de la page html résultante qu'il faudrait mettre !!
pas le php, car peu de devins hantent ces lieux...
bon ici :
....td bgcolor= "#CCCCCC"> '.$data['cel'].'</td>....
déjà, tu risques d'avoir plusieurs fois le même ID,
et ce n'est pas permis dans une même page
mets un id "progressif" ( radio+n° d'ordre, de ligne... )
met en un aussi au texte que tu mettrais dans un span par exemple,
et à partir de l'ID du radio tu peux "calculer" celui du span
ou le parent.parent.rowIndex c'est le n° de ligne
donc le tableau .rows[n° de ligne].innerHTML c'est =
$data['cel']
tu peux extraire ce que tu en veux
ou mets le $data['cel'] dans un span avec un même name pour tous
et utilise document.ResultForm.name_du_span[le n° de ligne cité]
akh550
Messages postés7Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention30 décembre 2008 9 déc. 2008 à 17:19
Bonjour,
Merci pour la réponse, vraiment désole pour le code PHP :-).
J'ai modifier l'ID en fonction de ma cellule, jusque la pas de problème, mais je suis pas sur de comprendre la suite pour le moment (je vais essayer d'exploiter les informations fournies).
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 08:58
on progresse...
mais
_ pas sur qu'un "+" soit autorisé dans un id
_ on est bien coté javascript ici, non ?
donc :
var obj = document.getElementById(radio+'.$data['cel'].');
$data['cel']... erreur de syntaxe !
ce que tu cherches à trouver c'est le radio coché ?
il faut " le chercher "
function f()
{ for ( var n=0;n<document.ResultForm.cellule.length; n++ )
{ if ( document.ResultForm.cellule[n].checked )
{ alert('le champ '+n+' sélectionné a pour id : '+document.ResultForm.cellule[n].id );
on ne peut pas utiliser value ! les radio n'en ont pas !
par contre document.ResultForm.rows[n].cells[1].innerHTML contiendrait bien
akh550
Messages postés7Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention30 décembre 2008 10 déc. 2008 à 17:18
Merci pour cette réponse,
Une dernière question, si je souhaite récupérer une ligne entière de mon tableau, du type:
<tr><td><input type="radio" id="7262" name="cellule" >7262</td><td>00000111W3</td></tr>
Y'a t'il une méthode plus simple qu'une autre? me conseil tu de mettre un id sur chaque cellule et de le récupérer par la suite (un peu lourd)?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 17:40
le plus simple ? ha ! mon foie... je ne sais pas
mais tu peux récupérer la ligne :
id_de_la_ligne.innerHTML
ou id_du_tableau.rows[n° de ligne].innerHTML
par exemple... ça dépend aussi de ce que tu veux en faire
on peut jouer avec les ...node ou autres...
curieux d'ailleurs tiens... tu vas en faire quoi ?
ou alors tu ne veux que le contenu des cellules d'une ligne ?
[mon Site] [M'écrire] Bul
akh550
Messages postés7Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention30 décembre 2008 10 déc. 2008 à 22:41
Bonsoir,
En faite, les données de cette ligne vont me servir a alimenter automatiquement un formulaire (par la suite... bon peut être un jours...enfin si mes 2 neurones restants arrivent a comprendre ta réponse :-), mais comme je débute, je me suis dis que le moyen le plus simple était d'abord de récupérer les valeurs connues que l'utilisateur a choisi (a partir d'un popup), lui faire valider son choix et ensuite les renvoyer dans les cases du formulaire (rien que ça me diras tu?). J'espère que c'est la bonne méthode.
Pour répondre a ta question , c'est donc le contenu des cellules d'une ligne qui m'intéresse.
Merci pour ta réponse je vais mettre en pratique demain.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 déc. 2008 à 09:14
>>alimenter automatiquement un formulaire
donc, il faudra sûrement récupérer les données cellule par cellule.
peut-être d'ailleurs ce tableau ne serait-il pas si mal
directement dans le formulaire ?
plus d'alimentation à faire....
[mon Site] [M'écrire] Bul
akh550
Messages postés7Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention30 décembre 2008 11 déc. 2008 à 16:26
Bonjour,
Je ne sais pas récupérer les données cellule par cellule. Peux tu me donner une piste?
<input type="radio" id="7262" name="cellule" >7262</td><td>00000111W3</td></tr>
car l'id est récupérable par +document.ResultForm.cellulle[n].id+,
,mais pour la deuxième valeur, je coince.