2017-08-14 2 views
-8

Hey les gars, je suis une table qui ressemble à ceci:Obtenir la valeur de plusieurs entrées dans la table

<table> 
 
    <tr> 
 
    <td></td> 
 
    <td></td> 
 
    <td> 
 
     <input type="text" name="test1" placeholder="Test1"> 
 
     <input type="text" name="test2" placeholder="Test2"> 
 
     <input type="text" name="test3" placeholder="Test3"> 
 
     <input type="text" name="test4" placeholder="Test4"></td> 
 
    </tr> 
 
    <tr> 
 
    <td></td> 
 
    <td></td> 
 
    <td> 
 
     <input type="text" name="test1" placeholder="Test4"> 
 
     <input type="text" name="test2" placeholder="Test5"> 
 
     <input type="text" name="test3" placeholder="Test6"> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td></td> 
 
    <td></td> 
 
    <td> 
 
     <input type="text" name="test1" placeholder="Test7"> 
 
     <input type="text" name="test2" placeholder="Test8"> 
 
    </td> 
 
    </tr> 
 

 
</table>

Je veux obtenir toutes les valeurs des entrées dans la dernière td et que pour chaque rangée de table. Le mieux serait si je pouvais stocker chaque valeur dans une chaîne et délimiter les valeurs par un ";" et après que stocker cette chaîne dans un tableau. Donc, dans ce cas précis, il y aurait 3 chaînes avec des valeurs. J'utilise JavaScript et Jquery et j'apprécierais vraiment de l'aide. Alors j'ai déjà essayé d'utiliser une condition foreach pour chaque tr mais cela n'a pas fonctionné.

mon code JS avait l'air quelque chose comme ceci:

$(document).ready(function() { 
    var valueArray[]; 
    $("button").click(function(event) { 
    $("tr").each(function(index) { 
    var valueString; 
    $("td input").each(function(){ 
    valueString += this.value; 
    }); 
    valueArray.push(valueString); 
    }); 
}); 
}); 

LAST EDIT:

Alors les gars j'ai obtenu une solution grâce à Alen je devais juste faire un peu de configuration:

$(document).ready(function() { 
    var ressultArray = []; 
    $("button").click(function(event) { 
    var trResult = ''; 
    $('table').find('tr').each(function() { 
     $(this).find('td input').each(function() { 
     if (trResult.indexOf($(this).val()) === -1) 
      trResult += $(this).val() + ';'; 
     }); 
     var result = trResult.slice(0, -1); 
     console.log(result); 
     console.log(trResult); 
     ressultArray.push(result); 
     trResult = ''; 
    }); 
    console.log(ressultArray); 
    }); 
}); 

Au moment où je supprime le dernier point-virgule, je travaille plus loin avec ce tableau pour évaluer les différentes valeurs. il y a encore place à l'amélioration mais je voulais juste quelque chose pour y aller. Merci à tous.

ici un plunker à tester: https://plnkr.co/edit/GMOgDA9dB0Y5Eosu0hVR?p=preview

+4

Qu'avez-vous essayé? Pouvez-vous partager toutes les tentatives de JS que vous avez écrites? – Terry

+2

On dirait que vous demandez à quelqu'un d'écrire du code pour vous. Ce n'est pas comme ça que ça fonctionne. Jetez un coup d'œil à [Comment demander] (https://stackoverflow.com/help/how-to-ask) et mettez à jour votre question de façon appropriée. – Andersson

+0

Vous devez vraiment apprendre à utiliser SO comme le dit @Andersson. – Sand

Répondre

0

Vous boucle pourrait jeter chaque td en lignes. Voici un exemple

$('table').find('tr').each(funtion(){ 
var trResult= ''; 
$(this).find('td').each(function() 
{ 
IF(trResult.indexOf($(this).val()) ===-1) 
trResult += $(this).val() +';'; 
}); 
}); 

Ceci est writen dans mon portable désolé pour le mauvais formattage

+0

Hey @ Alen.Toma merci qui ressemble assez au mien mais je vais l'essayer et vous dire si cela aide. :) –

+0

Mais pourriez-vous m'aider et dire quelle est la condition pour. –

+0

si la confition est de sorte que vous n'ajoutez pas la même valeur deux fois, donc vous ne pourriez pas avoir test1; test1 –