IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Mini problème avec les "" et les ''


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut [PHP-JS] Mini problème avec les "" et les ''
    Salut,

    Tout d'abord, désolé de poser une question aussi con (je suis lucide), mais j'ai un petit problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    print '
    	<form action="../op/op.TagMgr.php" method="post" enctype="multipart/form-data" name="form0_3" onsubmit="return checkForm1(this.elements[\"0\"]);">
    	<input type="Hidden" name="action" value="linktotag">
    	<table>
    		<tr>
    			<td class="inputDescription" valign="top">Name:</td>
    			<td>
    			<select name="name">
    				<option value="-1">-- Choose Tag --</option>';
    				$tags = getSelectTags();
    				foreach ($tags as $currTags)
    				{
    					print "<option value=\"$currTags\"";
    					if ($currTags == $settings->_tags)
    						print " selected";
     
    					print ">$currTags";
    				}
    				print "</select>";
    	print "";
    	print "<div class=\"standardText\"><ul>";
    	printFolder(getFolder($folderid));
    	print "</ul></div>";
    	print '</td></tr>
    		<tr>
    				<td colspan="2"><br><input type="Submit"></td>
    		</tr>
    	</table>
    	</form>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <script language="JavaScript">
     
    function checkForm1(num) {
    	msg = "";
    	eval("var formObj = document.form" + num + "_3;");
     
    	if (formObj.name.options[formObj.name.selectedIndex].value == -1) msg += "<?printMLText("js_select_tag");?>\n";
     
    	if (msg != "")
    	{
    		alert(msg);
    		return false;
    	}
    	else
    		return true;
    }
     
    </script>
    J'essai de faire fonctionner ma fonction javascript (elle fonctionne normalement car je l'ai récupérer sur une autre partie de code que j'ai fait auparavant).

    Mon probleme est dans mon appel de cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return checkForm1(this.elements[\"0\"]);">
    le "this.element[\"0\"]" est faux, mais je vois pas comment la corriger.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Le problème avec les ' c'est qu'elles n'interpretent pas les caractères d'échappement, enfin pas tous du moins. J'ai eu le problème un jour avec un \n.

    Essaye avec ça peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return checkForm1(this.elements[\'0\']);">

  3. #3
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    non, ça ne fonctionne pas

  4. #4
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Bon ben ... essaye de remplacer ton print '...' ; par print "..." ;
    Change tous les " par \"

    Et mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action=\"../op/op.TagMgr.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"form0_3\" onsubmit=\"return checkForm1(this.elements['0']);\">
    C'est peut être pas la meilleure solution mais c'est la seule que je vois !

    (Grumly, l'ours qui fait du PHP )

  5. #5
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    ça ne fonctionne toujours pas.
    Je ne comprend pas, c'est un truc que j'ai fait une centaine de fois, mais là, il ne veut pas prendre en compte ma fonction.

    (Grumly, l'ours qui va se tirer une balle )

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Grumly, l'ours qui va donner le code HTML généré par ce PHP pour qu'on puisse l'aider :p

  7. #7
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    si tu veux le source, le voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    <html>
    <head>
      <title>Admin-Tools</title>
      <link rel="STYLESHEET" type="text/css" href="../themes/icdh/styles.css">
    </head>
    <body  marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
     
    <div align=center>
     
          <table bgcolor=#666699 cellpadding="0" cellspacing="0">
              <td width="33%" height="100%"> </td>
              <td width="33%" height="100%"> <img src="../themes/icdh/logo_icdh.jpg" align=center></td>
              <td width="33%" height="100%"> </td>
          </table>
     
     
    </div>
    <script language="JavaScript">
     
    function checkForm1(num) {
    	msg = "";
    	eval("var formObj = document.form" + num + "_3;");
     
    	if (formObj.name.options[formObj.name.selectedIndex].value == -1) msg += "Please select a tag\n";
     
    	if (msg != "")
    	{
    		alert(msg);
    		return false;
    	}
    	else
    		return true;
    }
    </script>
    <style type="text/css">
    .folderClass {
    	list-style-image : url(../out/images/folder_closed.gif);
    	list-style : url(../out/images/folder_closed.gif);
    }
     
    .documentClass {
    	list-style-image : url(../out/images/file.gif);
    	list-style : url(../out/images/file.gif);
    }
    </style>
     
    <table class='titlebar' width='100%' cellpadding='5' cellspacing='0'>
    	<tr>
    		<td class='titlebar'>Logged in CHEVALIER</td>
    		<td align='right' class='titlebar'>
    <nobr><a href='/~prome/mydms_dev/out/out.ViewFolder.php?folderid=1' class='titlebar'>Content</a></nobr>
     | 
    <nobr><a href='/~prome/mydms_dev/out/out.SearchForm.php?folderid=1' class='titlebar'>Search</a></nobr>
     | 
    <nobr><a href='/~prome/mydms_dev/out/out.EditUserData.php' class='titlebar'>My Account</a></nobr>
     | 
    <nobr><a href='/~prome/mydms_dev/out/out.AdminTools.php' class='titlebar'>Admin-Tools</a></nobr>
     | 
    <nobr><a href='/~prome/mydms_dev/out/out.UserList.php' class='titlebar'>List of Users</a></nobr>
     | 
    <nobr><a href='/~prome/mydms_dev/op/op.Logout.php' class='titlebar'>Logout</a></nobr>
    		</td>
    	</tr>
    </table>
    <table width="100%" height="60%"><tr><td align="center" valign="middle"><table><tr><td><table cellpadding="0" cellspacing="0" width="600" border="0">
    	<tr>
    		<td colspan="2">
    			<table cellpadding="0" cellspacing="0" border="0">
    				<tr>
    					<td class="boxHeader">&nbsp;Link To Tag:</td>
    				</tr>
    			</table>
    		</td>
    	</tr>
    	<tr>
    		<td width="30"><img src="images/dummy.gif" width="30" height="1" border="0" alt=""></td>
    		<td class="boxBorder">
    			<table border=1 cellpadding="10" width="100%">
    				<tr>
    					<td>
    Arborescence</td><td>Choix des versions</td></tr><tr><td><div class="standardText"><ul><li class="folderClass"><a class="standardText" style="color: " href="out.ViewFolder.php?folderid=46">essai10</a></li><ul><li class="folderClass"><a class="standardText" style="color: " href="out.ViewFolder.php?folderid=47">test</a></li><ul><li class="documentClass"><a class="standardText" style="color: " href="out.ViewDocument.php?documentid=22">form</a></li><li class="documentClass"><a class="standardText" style="color: " href="out.ViewDocument.php?documentid=23">Bleach</a></li></ul><li class="documentClass"><a class="standardText" style="color: " href="out.ViewDocument.php?documentid=20">Form</a></li><li class="documentClass"><a class="standardText" style="color: " href="out.ViewDocument.php?documentid=21">MyDMS</a></li></ul></ul></div></td><td>
    	<form action="../op/op.TagMgr.php" method="post" enctype="multipart/form-data" name="form0_3" onsubmit="return checkForm1(this.elements['0']);">
    	<input type="Hidden" name="action" value="linktotag">
    	<table>
    		<tr>
    			<td class="inputDescription" valign="top">Name:</td>
    			<td>
    			<select name="name">
    				<option value="-1">-- Choose Tag --</option><option value="Mothra">Mothra<option value="MOTHRA et MyDMS">MOTHRA et MyDMS<option value="MyDMS">MyDMS</select><div class="standardText"><ul><li class="documentClass"><a class="standardText">form</a></li>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="12">Form.doc<li class="documentClass"><a class="standardText">Bleach</a></li>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="13">bleach.jpg&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="15">out.UsrMgr2.php.bak&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="17">aide.doc<li class="documentClass"><a class="standardText">Form</a></li>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="10">Form.doc<li class="documentClass"><a class="standardText">MyDMS</a></li>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='version[]' value="11">Etude sur MyDMS.doc</ul></div></td></tr>
    		<tr>
    				<td colspan="2"><br><input type="Submit"></td>
    		</tr>
    	</table>
    	</form></td></tr></table>					</td>
    				</tr>
    			</table>
    		</td>
    	</tr>
    </table>
    </td></tr></table><br><br><div align=center>
      <span class=standardText>For reporting a bug or an enhancement, goto <a href=http://webicdhr.rennes.thmulti.com/mothra target=Mothra>MOTHRA</A> and select product "ICDH Documentation System"</span></div>
    <div align=center>
      <span class=standardText>For any questions regarding the MyDMS tool, ask <a href=mailto:sylvain.fabre@thomson.net>Sylvain FABRE</a></span><br>
    <span class=standardText>Administrators are : Sylvain Fabre, Frederic Plissonneau, Luc Paugam, Bruno Guesdon, Thierry Marre, Alain Verdier, Christophe Guernion, Patrice Lesec<BR>
    In case of problem or for account request, please contact one of them.</span>
    </div>
    <div align=center><span class=standardText>Version 1.0</span></div>
    <div align=center><span class=standardText><a href=http://webicdhr.rennes.thmulti.com>ICDH-RENNES Homepage</A></span></div>
    <div align=center><span class=standardText><a href=out.ViewLastDocuments.php>View latest updates</A></span></div>
    </body></html>
    Pour l'instant, je veux juste faire une vérification au niveau du menu déroulant. Cependant, dans ce meme formulaire, il y a différentes checkboxs qui sont générées (donc que je devrai vérifié plus tard).

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Heuu bah le code généré à l'air correct, je dirais que c'est plus au niveau de javascript qu'il y a un soucis.

    Ton debbugueur (paye l'orthographe ) javascript ne gueule pas ?

  9. #9
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Sylvain71
    Ton debbugueur (paye l'orthographe ) javascript ne gueule pas ?
    c'est à dire?

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    As tu activé un débbugueur JS au moins ?
    Tu es sous quoi ? Internet Explorer ou Firefox ?
    Si tu es sous IE, change pour Firefox
    Si tu es sous firefox, va dans Outils, Extensions, et télécharge la toolbar nommée "Webdeveloper". Elle a sauvé un paquet de vies
    Une fois installée, va sur ton site, valide ton formulaire, va dans "Tools" sur ta barre, puis "Javascript console". Là tu verras si il y a une erreur au niveau de ton javascript.

  11. #11
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    J'ai fait ce que tu m'as dit.
    Il me marque l'erreur :
    "missing ] in index expression"
    var formObj = document.form[object HTMLInputElement]_3;
    --------------------------------------

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Oui donc là c'est un probleme javascript et pas PHP
    Après je ne peux pas trop t'aider, la fonction eval je suis pas très copain avec elle. Affiche ta variable "num" dans un alert déjà pour voir si elle contient la bonne valeur.

  13. #13
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Je pense plutot a un probleme PHP.
    J'ai fait :
    alert(num);

    et le message affiché était : [object HTMLInputElement]

  14. #14
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Non là c'est une erreur javascript pas php !
    Si num ne contient pas ce que tu veux c'est que tu n'écris pas le bon paramètre à ta fonction avec PHP.
    Tu fais écrire à PHP une erreur Javascript en gros.

    Ce n'est pas ça que tu dois faire plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkForm1(this.elements['0'].value)

  15. #15
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    J'en ai eu marre d'essayer de regler ce probleme, j'y suis aller à la barbare:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval("var formObj = document.form0_3;");
    ça fonctionne comme ça, donc c'est tres bien. Par contre, je crois que je vais avoir un probleme avec les checkbox.

  16. #16
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Bon ba meme probleme que tout a l'heure mais avec les checkboxs.
    J'ai modifié mon code (un peu):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    print '<form action="../op/op.TagMgr.php" method="post" enctype="multipart/form-data" name="form0_3" onsubmit="return checkForm1(\'version[]\');">
    	<input type="Hidden" name="action" value="linktotag">
    	<table>
    		<tr>
    			<td class="inputDescription" valign="top">Name:</td>
    			<td>
    			<select name="name">
    				<option value="-1">-- Choose Tag --</option>';
    				$tags = getSelectTags();
    				foreach ($tags as $currTags)
    				{
    					print "<option value=\"$currTags\"";
    					if ($currTags == $settings->_tags)
    						print " selected";
     
    					print ">$currTags";
    				}
    				print "</select>";
    	print "";
    	print "<div class=\"standardText\"><ul>";
    	printFolder(getFolder($folderid));
    	print "</ul></div>";
    	print '</td></tr>
    		<tr>
    				<td colspan="2"><br><input type="Submit"></td>
    		</tr>
    	</table>
    	</form>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function checkForm1(ch) {
    	msg = "";
    	alert(ch);
    	eval("var formObj = document.form0_3;");
    	if (formObj.name.options[formObj.name.selectedIndex].value == -1) msg += "<?printMLText("js_select_tag");?>\n";
    	if (msg != "")
    	{
    		alert(msg);
    		return false;
    	}
    	else
    		return true;
     
    	msg2 = "";
    	msg2 += "<?printMLText("js_select_group");?>\n";
     	for(i=0;i<ch.length;i++){
      		if(ch[i].checked){
      		 return true;
      		}
     	}
     	alert(msg2);
    	return false;
    }
    Le probleme c'est qu'il me prend, pour la valeur "ch", "version[]" et nom les différentes cases à cocher. Il n'y a donc pas de vérifications. Comment faire?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JSON from PHP to Silverlight problème avec les BackSlash's
    Par s.toubal dans le forum Silverlight
    Réponses: 4
    Dernier message: 16/02/2012, 14h43
  2. [MySQL] Problème avec le single quote
    Par popcorn dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/12/2008, 23h44
  3. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  4. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  5. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo