2009-12-30 5 views
1

J'ai un formulaire de connexion où un utilisateur (qui n'est pas encore connecté) peut insérer son identifiant et mot de passe, après avoir rempli ces champs, l'utilisateur doit appuyer sur un bouton soumettre. Ce que j'essaye de faire est: Remplacer le bouton normal d'envoi pour un lien $ html-> avec quelques styles de css.Utiliser le lien html comme bouton de formulaire

Ainsi est-il de toute façon je peux utiliser quelque chose comme ceci:

<span class = "licitateThis clearfix"> 
    <?php echo $html->link(__("Sign In", true), array("type" => "Sign In", 'class'=>'licitate')); ?> 
</span> 

Au lieu de:

echo $form->end(__('Sign In',true)); 

pour créer un bouton pour soumettre un petit formulaire de connexion?

Mon code css:

.licitateThis{position:relative;float:left;width:100%;} 
.licitateThis a.licitate{display:block;float:left;padding:2px 0 4px;width:100%;background-color:#eee;text-shadow:#fff 1px 1px 1px;text-decoration:none;font-weight:bold;font-size:115%;border:1px solid #fff;border-radius:3px;text-align:center;letter-spacing:-0.02em;text-transform:uppercase;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;} 
.licitateThis a.licitate:hover,.licitateThis:hover a{background-color:#0071bb;text-shadow:#666 1px 1px 1px;color:#fff;} 

PS: La forme im essayant de soumettre son un formulaire de connexion, et se situe à default.ctp il peut être utilisé dans toutes les pages.

Problème résolu:

CSS (créé une nouvelle classe):

.loginSubmit {color:#0071bb;outline:none; display:block;float:left;padding:2px 0 4px;width:100%;background-color:#eee;text-shadow:#fff 1px 1px 1px;text-decoration:none;font-weight:bold;font-size:115%;border:1px solid #fff;border-radius:3px;text-align:center;letter-spacing:-0.02em;text-transform:uppercase;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;} 
.loginSubmit:hover {background-color:#0071bb;text-shadow:#666 1px 1px 1px;color:#fff;} 

PHP:

<button type="submit" class="loginSubmit">Sign In</button> 
<?php echo $form->end(); ?> 

Merci.

Répondre

1

Qu'est-ce que vous essayez de faire ici? Une raison pour laquelle vous devez utiliser l'ancre <a> pour votre bouton d'envoi?

Si tout ce que vous voulez est de faire ressembler votre bouton d'envoi à un lien, alors vous pouvez le faire en utilisant css.

Ou si vous voulez juste de mettre votre bouton soumettre un autre endroit autre que l'étiquette à côté </form>, alors vous pouvez simplement mettre <button type="submit" class="licitate">Sign In</button> ne importe où dans la forme et utiliser <?php echo $form->end(); ?> pour fermer le formulaire.

+0

Également possible d'utiliser au lieu de

+0

J'ai une costumization css appelée licitation et je ne veux pas l'utiliser sur mon bouton de soumission, mais je ne sais pas comment. : S – Canastro

+0

vous pouvez toujours le faire sur '. Vous avez juste besoin de modifier votre CSS un peu. Essayez de supprimer la définition 'a' sur' a.licitate' sur CSS. Bien que vous aurez besoin d'utiliser javascript au lieu de: hover l'effet mouseover – jpdelatorre

-1

oui mais ce n'est généralement pas une bonne idée. vous allez devoir utiliser javascript ..

<a href="#" onclick="document.formName.submit()"> 

avec CakePHP peut-être

<?php echo $html->link(__("Sign In", true), array("type" => "Sign In", 'class'=>'licitate', 'onClick' => 'document.formName.submit()')); ?> 
+0

si je mets: ' link (__ ('Sign In', true), array ('type' => 'Connexion', 'classe' => 'licitate', 'onClick' => « document.UserLoginForm.submit() ')); ?> 'le html généré est' Sign In 'et cela ne fonctionne pas. – Canastro

+0

Les paramètres sont juste faux c'est tout. Vérifiez la méthode de lien dans les documents. echo $ html-> link (__ ('Connexion', vrai), null, array ('class' => 'licitate', 'onClick' => 'this.submit(); ')); Docs, http://api.cakephp.org/class/html-helper#method-HtmlHelperlink –

+0

Vous n'avez pas besoin d'utiliser l'attribut 'onclick' intégré directement dans le lien, en fait, c'est une mauvaise forme. La fonctionnalité JavaScript doit être jointe en tant qu'amélioration progressive. –

0

Son problème est qu'une balise d'ancrage ne peut pas soumettre le formulaire sans javascript. $ html-> link fait un lien, pas un type d'entrée de submit, pas un bouton de type submit.

Si vous voulez simplement utiliser un bouton, écrivez le html CORRECT pour celui-ci à la main.

... other form code here 
    <button type="submit" class="licitation"> 
     Sign In 
    </button> 
    <?php echo $form->end(); 
+0

Oui c'est mon problème, mais il y en a un autre: la classe licitate est pour une ancre, elle a un état normal et un état stationnaire. Voici un extrait de mon CSS: http://pastebin.com/m4116430 et un lien normal utilisant les styles css: http://pastebin.com/m2f7af7ab. – Canastro

+0

Donc, vous n'avez pas de réel problème. Ce que vous avez n'est pas une connaissance suffisante de css pour styliser un élément de bouton comme vous le souhaitez et un peu de css que vous souhaitez pourrait travailler sur un élément pour lequel il n'était pas destiné. Pourquoi ne pas google autour de comment styliser les éléments de bouton. Un bon point de départ est les boutons de plugins blueprintcss.org Pourquoi vous envelopper autour d'une durée d'une balise d'ancrage? Il y a beaucoup de façons plus propres et sémantiquement meilleures de le faire. Même quelque chose d'aussi simple que de placer le nom de la classe sur la balise d'ancrage et d'envelopper le texte de votre lien dans l'intervalle serait une amélioration. –

0

Si je comprends le droit d'auteur que vous voulez essayer si votre utilisateur est déjà connecté? si c'est le cas, créez d'abord une fonction qui vérifie si un utilisateur est connecté ou non. Puis le vérifier

<span class = "licitateThis clearfix"> 
    <?php if(userisalreadyloggedin()) 
    echo '<a href="login.php" class ="licitate"> Singin</a>'; 
    ?> 
</span> 
+0

J'ai un formulaire de connexion où un utilisateur (qui n'est pas encore connecté) peut insérer son identifiant et mot de passe, après avoir rempli ces champs, l'utilisateur doit appuyer sur un bouton soumettre. Ce que je suis en train de faire est la suivante: Remplacer le bouton normal pour soumettre un lien $ html-> avec certains styles CSS. – Canastro

Questions connexes