2013-01-30 2 views
0

Je crée un formulaire qui extrait la valeur de la base de données et stocke dynamiquement la valeur dans une table. J'ai un bouton nommé add qui ajoute une ligne dynamiquement quand un utilisateur appuie dessus et j'ai un compteur caché qui compte les lignes ajoutées.comment stocker la valeur de la zone de texte html dans la variable javascript

Le problème est, quand je vais chercher le dossier, le compteur indique le nombre de lignes présentes et quand j'ajoute une nouvelle ligne, il remonte à 1.

S'il y a deux lignes dans la table, le compteur montrera 2 mais quand j'essaye d'ajouter une nouvelle rangée le compteur montre 1.

Y at-il un moyen de définir la valeur du texte de compteur dans la variable JavaScript et l'incrémenter?

Voici mon code JavaScript:

<script language="javascript" type="text/javascript"> 
    var jj= 1; 
    alert(jj); 
    function addRow() 
    { 
     //alert(jj) 
     var tbl = document.getElementById('zimtable'); 
     var lastRow = tbl.rows.length; 
     var iteration = lastRow - 1; 
     var row = tbl.insertRow(lastRow); 

     var firstCell = row.insertCell(0); 
     var el = document.createElement('input'); 
     el.type = 'text'; 
     el.name = 'zimname_' + jj; 
     el.id = 'zimname_' + jj; 
     el.size = 40; 
     el.maxlength = 40; 
     firstCell.appendChild(el); 

     var secondCell = row.insertCell(1); 
     var el2 = document.createElement('input'); 
     el2.type = 'text'; 
     el2.name = 'zimmob_' + jj; 
     el2.id = 'zimmob_' + jj; 
     el2.size = 13; 
     el2.maxlength = 13; 
     secondCell.appendChild(el2); 

     // alert(i); 
     //$('#hh').val(jj); 
     jj++; 
     makhtab.hh.value=jj; 

     alert(jj); 
    } 
</script> 

Voici mon code php pour afficher la table:

<?php 

    $zim = mysql_query("SELECT * FROM `makhzim` WHERE makhcode='$newsid' ORDER BY srno")or die(mysl_error()); 
    $ctrzim = 0; 
    while ($zrow = mysql_fetch_array($zim)){ 
     $ctrzim++; 
     print '<script type="text/javascript">'; 
     print "alert('$i')"; 
     print '</script>'; 
     echo "<tr>"; 
     echo "<td><input name='zimname_$ctrzim' type='text' size='40' maxlength='20' value=$zrow[name] /></td>"; 
     echo "<td><input name='zimmob_$ctrzim' type='text' size='13' maxlength='20' value=$zrow[mobile] /></td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
    echo "<input type=\"button\" value=\"Add\" onclick=\"addRow();\" /><input id=\"hh\" name=\"hh\" type=\"text\" value= '$ctrzim'/>"; 
?> 
+1

Vous utilisez [une ** API de base de données obsolète **] (http://stackoverflow.com/q/12859942/19068) et vous devriez utiliser un [remplacement moderne] (http://php.net/manual /fr/mysqlinfo.api.choosing.php). Vous pouvez (nous ne pouvons pas voir d'où vient le '$ newsid') être également vulnérable aux [attaques par injection SQL] (http://bobby-tables.com/) ** qu'une API moderne rendrait plus facile [défendre] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php) vous-même. – Quentin

+0

bien $ newsid est récupéré à partir de la question ci-dessus que je n'ai pas posté monsieur je suis vraiment coincé dans un gâchis s'il vous plaît m'aider – suhail

Répondre

0

Dans votre code php mettre la valeur du compteur à un élément caché

<input type = "hidden" id = "hiddenElementId" value = "your php counter value"/> 

Dans votre javascript

<script> 
    var count; 
    window.onload=function(){ 
     count = = document.getElementById("hiddenElementId").value; 
    }; 
    function addRow() { 
     alert(count); 
     .. 
     .. 
     count++; 
     } 
<script> 
Questions connexes