Jquery Timedatepicker ne fonctionnera pas correctement sur un formulaire dynamic

J’ai modifié avec succès un code que j’ai trouvé ici, qui crée de nouveaux champs de zone de texte en utilisant javascript.

J’utilise timepicker avec le plugin jquery datepicker pour une sélection en douceur de la date et de l’heure. J’ai un problème. Le timepicker fonctionne normalement après le chargement de la page, mais après l’ajout de champs de saisie supplémentaires, il ne fonctionne plus.

Voici le code html:

        

Voici le script

  $(document).ready(function(){ $('.timepicker').datetimepicker(); }); $('#start').click(function(){ $(".timepicker").datetimepicker("destroy"); $(".timepicker").datetimepicker(); }); var num=0; function addField(){ num++; //1 if(num>4){ num--; } makefields(); } function rmField(){ num--; if(num<0){ num++; } makefields(); } function makefields(){ var fields=""; for(var o=0;o<=num;o++){ fields+="

"; fields+="

"; } fields+="
"; if(num!=3){fields+="";} if(num>0){fields+="";} fields+=""; document.getElementById("fields").innerHTML=fields; }

J’essaie également d’append les nouvelles valeurs d’entrée dans ma firebase database. Avez-vous des idées sur la manière de procéder? Désolé, je suis toujours nouveau dans le développement web. En espérant devenir meilleur un jour.

EDIT: Voici le code php que je modifie depuis un moment maintenant. Je souhaite que les champs nouvellement créés soient correctement insérés dans ma firebase database. J’ai défini le nombre maximum de champs à append à 4. J’ai essayé d’insérer les champs de manière dynamic en créant un ensemble de champs prêts à les récupérer dans ma table de firebase database (datefrom1, dateto1, datefrom2, dateto2, etc., mais je pas le faire fonctionner.

Aussi, est-il possible d’append un nombre de champs dans mon SQL via le code? Comme si vous avez 2 doublons, le programme créera 2 nouveaux champs dans une certaine table de firebase database? Je préférerais cela si possible. J’ai cherché partout dans le réseau mais je n’ai pas trouvé la solution.

 $mysql_host = 'changed'; // put change for confidentiality $mysql_user = 'changed'; $mysql_pass = 'changed'; $mysql_db = 'changed'; if(!mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !mysql_select_db($mysql_db)) { die(mysql_error()); } $sets=mysql_real_escape_ssortingng($_REQUEST["num"]); for($loop=0;$loop 

Vous devez initialiser le plug-in pour les éléments nouvellement ajoutés après les avoir ajoutés. Il ne sera pas initialisé sur des éléments qui n’existent pas lorsque vous exécutez le code.

Change ça:

 document.getElementById("fields").innerHTML=fields; 

À:

 $('#fields').html( fields).find('.timepicker').datetimepicker(); 

Le problème de la firebase database n’est pas clair

Pour ces types de formulaires dynamics, il est préférable d’utiliser des modèles côté client pour les bits dynamics. De cette façon, vous n’avez pas à les coder deux fois (une fois en js et une autre fois en html)

Voir http://jsfiddle.net/HmCPd/1/

Votre fonction addField devrait ressembler à quelque chose comme:

 function addField() { // get html from the template var html = $('#fieldTemplate').html(); /* make a new dom element (need to sortingm whitespace or jquery won't parse the template properly */ var $newField = $($.sortingm(html)); // insert the new field and make it a datepicker $('#fieldsContainer') .append($newField) .find('input') .datepicker(); } 

C’est très similaire à ce que vous voulez faire. Assurez-vous simplement de lier des classes d’interface utilisateur telles que datetimepicker () après avoir inséré les nouveaux nœuds dans le dom.

En ce qui concerne la sauvegarde d’éléments dans la firebase database, l’idée générale est que vous voulez atsortingbuer à vos champs, etc. Rassemblez ces parameters dans une instruction d’insertion SQL et exécutez-la sur la firebase database. Assurez-vous simplement d’éviter l’injection SQL. Voir Comment puis-je empêcher l’injection SQL en PHP? pour plus d’informations à ce sujet.