Jump to content

Modifier le type de champs de la personnalisation


Recommended Posts

Bonjour à tous,

     Dans le but d'insérer un calendrier datepicker à un champ de personnalisation, j'ai transformé le textarea en input.

En version 1.5.4.1 tout fonctionnait parfaitement mais depuis la mise à jour vers la version 1.5.6.2, lors de l'ajout au panier, un message d'erreur me demande de renseigner les champs requis à la personnalisation. Or, ce champ est déjà renseigné car il ré-affiche la valeur sélectionnée précédemment.

Si je repasse ce champ en textarea, il n'y a plus de problème. Je pense donc que le souci est lié au type de champ mais pour datepicker, il me faut un champ input et non textarea.

Avez-vous une solution à me suggérer ??? Le problème vient-il vraiment du type de champ ???

Merci d'avance ;)

Edited by Rom1906 (see edit history)
Link to comment
Share on other sites

Une solution pourrait etre de ne pas afficher le textarea avec un display:none en css.

Et de le remplir à la volée avec le contenu du datepicker.

 

Mais bon sans avoir le site et le code sous les yeux, c'est juste une piste de recherche.

Link to comment
Share on other sites

Voici le code prestashop de base (commenté) puis celui que j'ai ajouté pour le champ input : 

<li class="customizationUploadLine{if $field.required} required{/if}">
     <label for ="textField{$customizationField}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if !empty($field.name)}{$field.name}{/if}{if $field.required}<sup>*</sup>{/if}</label><br/>
     {*<textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" class="datepicker customization_block_input" />{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>*}
     <input type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" class="datepicker customization_block_input" value="{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}" readonly onchange="javascript:saveCustomization()" />
</li>
Link to comment
Share on other sites

Dans l'idée ça donnerait ça :

<li class="customizationUploadLine{if $field.required} required{/if}">
<label for ="textField{$customizationField}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if !empty($field.name)}{$field.name}{/if}{if $field.required}<sup>*</sup>{/if}</label><br/>
<textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" style="display:none" />{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>

<input type="text" name="mondatePicker" id="mondatePicker" class="datepicker customization_block_input" value="{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}" readonly onchange="$('#textField{$customizationField}').html(this.value)  ;javascript:saveCustomization()" />
</li>
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Ça fonctionne lors de l'enregistrement d'un premier produit mais lorsque l'on veut ajouter un second article au panier, lors de la sélection de la date, celle-ci apparaît dans le champs textarea en display: none mais pas dans le champs input. Le visiteur ne voit pas la date sélectionnée, pourtant elle est bien enregistrée.

La valeur est dans le code source mais le navigateur ne l'affiche pas !!!

J'ai testé sous chrome, firefox et ie. Le problème persiste...

Comment contrer ce problème ?

Merci

Edited by Rom1906 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...