focus sur la saisie texte si case cochée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : focus sur la saisie texte si case cochée

par shen » 30 janv. 2006, 16:28

=; un peu trop masculin ce pseudo Shen =;

ben en fait pour trouver un pseudo c'est pas mon truc alors c'est juste une modif de mon nom, sinon je trouvais que ça faisait féminin!!!
De rien, si tu pouvais éventuellement montrer comment tu as fait ça aiderait peut-être quelqu'un d'autre :wink:


désolé j'avoue c'était un peu de la flemme!!! :oops:

alors j'explique!!!

pour envoyer une valeur dans une autre page lorsque je coche une case, j'ai fais :

printf("<td><center><INPUT type='checkbox' name='cocher[]' VALUE=%d_%d onClick=".$sep."focusSur(this,'cluster".$j."')".$sep."></center>",$result->fields[0],$j);

%d -> valeur numérique
%s -> chaine de caracteres

dans cette ligne de commande j'envoie donc deux valeur qui seront séparé par '_'. dans mon autre page je fais un explode ('_',$string), se qui me permet donc d'avoir mes deux valeurs séparément dans un tableau.

la première page m'envoi comme valeur par exemple texte5=2, ce que je dois récupérer c'est texte5 pour avoir la valeur 2. $j=5 donc je reconstitue le nom de ma variable texte5 :

$texte = "texte".$num1nomI[1];
$num1nomI[1] -> le [1] correspond a la deuxieme varable que j'envoie dans l'ordre a laquel je les ai placé!!!

puis je récupère ma valeur
if(isset($_GET[$texte]))
 $numpage = $_GET[$texte];
je ne sais pas si je suis assez clair, si se n'est pas le cas dites le moi!!!

par Truc » 27 janv. 2006, 22:23

Merci c'est bon j'ai réussi à récupérer ma variable
De rien, si tu pouvais éventuellement montrer comment tu as fait ça aiderait peut-être quelqu'un d'autre :wink:
Bisous à tous

=; un peu trop masculin ce pseudo Shen =;

:lol:

par shen » 27 janv. 2006, 19:07

Merci c'est bon j'ai réussi à récupérer ma variable
Bisous à tous et mille merci pour votre aide!!!

par shen » 27 janv. 2006, 13:55

Soucis dans mon programme sa ne marche pas!!!

je ne réussi pas à récupérer mes valeurs de mes saisis texte!!!

je voulais utiliser foreach comme pour les case à cocher mais sa me donne :
Warning: Invalid argument supplied for foreach() in c:\dev\test\srvimpr_10\sireimphp2.php on line 38
sinon juste en le récupérant normal avec la methode GET mais sa me donne comme reponse :

ben en fait il ne trouve pas donc il me met la valeur pas défaut :
<?php

require('siconn.php');

$listchoix = trim(htmlspecialchars(addslashes($_GET['ListIP']))); // récupère l'imprimante physique si il y a 

if (isset($_GET['cocher'])) //si il y a des cases cochées
	$tabcocher = $_GET['cocher'];// je récupère et la met dans la variable $tabcocher
else
{
	$tabcocher = null;
	printf("<center>");
	printf("faites une selection");
	printf("</center>");
	
}

if (isset($_GET['texte']))
	$tabnump = $_GET['texte'];
else
	$tabnump = null;

if(isset($_GET['boutondate']))
{
	if(!empty($tabcocher))//si la table cocher n'est pas vide
	{	foreach($tabcocher as $valeur)//boucle: faire pour chaque valeur($valeur correspond au num1)
		{
			echo "num1:".$valeur;
			//foreach($tabnump as $num)
				echo "numpage:".$tabnump;
			if(!empty($listchoix))// si une imprimante physique est sélectionné
			{
				echo "nvelImpr:".$listchoix;
			}
		}
	}
}
?>
voilà un code simplifié que j'ai taper car normalement j'écrit dans un fichier txt que j'enregistre dans un dossier spécial.
Là je souhaitais juste afficher, voir si je récupère bien mes valeurs mais pas bon et je ne vois pas comment faire . quelle erreur je fais!!!

Merci

par shen » 27 janv. 2006, 11:58

sa marche très bien avec disabled, j'ai testé à part si on pouvait récupérer la valeur dans la saisie texte, et sa marchait!!!

MerCi

Maintenant je teste pour récupérer la valeur dans mon programme !!!

par Truc » 26 janv. 2006, 23:39

Non non c'était pas ça le problème :)

"leCalk" est un variable JS
et "false" un booléen :wink:

mais surtout pour le readOnly, si on met:
window.(...).readonly = false;
ça plante ou dumoins aucun effet

il faut donc bien une majuscule sur le "O":
window.(...).readOnly = false;

par Cyrano » 26 janv. 2006, 23:19

Peut-être parce qu'il manque une ou deux paires d'apostroh=phes ?
window.document.forms['general'].elements['leCalk'].readOnly = 'false';
:?:

par Truc » 26 janv. 2006, 23:08

... "readOnly" (attention à la majuscule)
En HTML 4 c'est vrai, mais en XHTML, tout en minuscule obligatoire ;)
Exact chef 8)

je parlais surtout pour le JS:
window.document.forms['general'].elements[leCalk].readOnly = false;
sinon va savoir pourquoi ça ne fonctionne pas :-k

par Cyrano » 26 janv. 2006, 22:43

... "readOnly" (attention à la majuscule)
En HTML 4 c'est vrai, mais en XHTML, tout en minuscule obligatoire ;)

par Truc » 26 janv. 2006, 21:45

peut être en ajoutant l'attribut "disabled" par défaut au champ en question:
printf("<center>num page :<INPUT type='test' name='prempage".$j."' id='premp".$j."' size='3' disabled=\"disabled\"></center></td>");
Par contre faudrait verifier si la valeur est toujours envoyée :-k

si elle n'est pas envoyée donc ne peut être récupérée en POST il faut changer tous les "disabled" en "readOnly" (attention à la majuscule)

par Cyrano » 26 janv. 2006, 19:25

utilise l'évènement onload dans la balise body ? :-k

par shen » 26 janv. 2006, 19:19

c'est super merci ça marche parfaitement sauf un petit détail, c'est que à l'affichage de la page je peux ecrire dans le saisi text, je dois faire un premier clic pour déclancher le mécanisme!!!
comment faire pour que sa soit des l'affichage???

par Truc » 26 janv. 2006, 18:36

si je te dis code source tu sais de quoi je veux parler ?

enfin le probleme vient certainement du faite que tu as des champs portant le même nom du à la boucle,essaie avec ce code:
$j=0;
while(!$result->EOF)
{
        printf("<tr>\n");
        for ($i=0; $i<$nbchps; $i++)
        {
                  :
                  :
                  :
                  elseif ($i==9)
            {
                echo "<td><center><INPUT type='checkbox' name='cocher[]' VALUE=".$result->fields[0]."  onClick=\"montrer_cacher(this,'premp".$j."')\"></center>";
                printf("<center>num page :<INPUT type='test' name='prempage".$j."' id='premp".$j."' size='3'></center></td>");
            }
        }
        j++;
}
avec des id différents !

par shen » 26 janv. 2006, 18:10

mais tu n'as qu'une case à cocher qui influe sur le champ "id='premp'" qui est unique me semble bien puisque tu affiche cette partie que si $i == 9 donc une seule fois.
en fait non il y a plusieurs ligne de résultats donc une case à cocher à chaque ligne, le nombre 9 correspond à la colonne de mon tableau

par Truc » 26 janv. 2006, 17:26

alors $sep = ' " '; pour permettre de mettre des double guillemet sans confusion avec d'autre et les guillemet simple!!!
inutile, pour éviter la "confusion" on y ajoute un \ qui échape le guillemet:
" <input ... onClick="montrer_cacher(this,'premp')" >"
j'ai mis l'alert dans ma fonction :
(...)
c'est bien ça??? quand je coche ça ne me donne pas d'alert!!!
oui, fait la même chose avant le 1er test, donc en 1ere ligne de la fonction.

mais tu n'as qu'une case à cocher qui influe sur le champ "id='premp'" qui est unique me semble bien puisque tu affiche cette partie que si $i == 9 donc une seule fois.

As tu regardé le code source qui correspond à ces lignes et nottament à cette case a cochée et champ texte ?