2014-02-18 64 views
0

我遇到问题。在我的形式我已经div的从克隆元素获取数据

<div class="wyksztalcenie"> 
<select id="szkola"> 
    <option value="Wyższe">Wyższe</option> 
    <option value="Średnie">Średnie</option> 
    <option value="Zawodowe">Zawodowe</option> 
</select> 
<input class="cos1" id="nazwa" name="nazwaszkoly" placeholder="nazwa uczelni/szkoły" type="text" /> 
<input class="cos1" id="kierunek" name="kier" placeholder="kierunek" type="text" /> 
<input class="cos1" id="rok" name="rok" placeholder="rok ukończenia" type="text" /> 
</div> 

我已经克隆了这个div五次,我的问题是从输入获得的数据和克隆DIV选择。在这个用户选择教育水平(高中,大学等),然后我把它发送到数据库的格式“选择输入输入输入”。这是可以的,但只有第一个div保存到数据库中。 谁能帮我

+0

你有什么尝试过吗? –

+1

不知道你尝试过什么,我们不知道你想要解决什么问题。 – isherwood

+2

将'id'更改为'class',因为多个元素的相同ID是无效的标记,如果发生这种情况,brower将获取页面中出现的第一个元素。 – Jai

回答

0

我模拟你的问题;

HTML(我假设,你已经克隆了它):

<div class="wyksztalcenie"> 
<select class="szkola"> 
    <option value="Wyższe">Wyższe</option> 
    <option value="Średnie">Średnie</option> 
    <option value="Zawodowe">Zawodowe</option> 
</select> 
<input class="cos1" id="nazwa" name="nazwaszkoly" placeholder="nazwa uczelni/szkoły" type="text" /> 
<input class="cos1" id="kierunek" name="kier" placeholder="kierunek" type="text" /> 
<input class="cos1" id="rok" name="rok" placeholder="rok ukończenia" type="text" /> 
</div> 
<div class="wyksztalcenie"> 
<select class="szkola"> 
    <option value="Wyższe">Wyższe</option> 
    <option value="Średnie">Średnie</option> 
    <option value="Zawodowe">Zawodowe</option> 
</select> 
<input class="cos1" id="nazwa" name="nazwaszkoly" placeholder="nazwa uczelni/szkoły" type="text" /> 
<input class="cos1" id="kierunek" name="kier" placeholder="kierunek" type="text" /> 
<input class="cos1" id="rok" name="rok" placeholder="rok ukończenia" type="text" /> 
</div> 
<div class="wyksztalcenie"> 
<select class="szkola"> 
    <option value="Wyższe">Wyższe</option> 
    <option value="Średnie">Średnie</option> 
    <option value="Zawodowe">Zawodowe</option> 
</select> 
<input class="cos1" id="nazwa" name="nazwaszkoly" placeholder="nazwa uczelni/szkoły" type="text" /> 
<input class="cos1" id="kierunek" name="kier" placeholder="kierunek" type="text" /> 
<input class="cos1" id="rok" name="rok" placeholder="rok ukończenia" type="text" /> 
</div> 
<div class="wyksztalcenie"> 
<select class="szkola"> 
    <option value="Wyższe">Wyższe</option> 
    <option value="Średnie">Średnie</option> 
    <option value="Zawodowe">Zawodowe</option> 
</select> 
<input class="cos1" id="nazwa" name="nazwaszkoly" placeholder="nazwa uczelni/szkoły" type="text" /> 
<input class="cos1" id="kierunek" name="kier" placeholder="kierunek" type="text" /> 
<input class="cos1" id="rok" name="rok" placeholder="rok ukończenia" type="text" /> 
</div> 

<input type="button" id="send" value="Send"/> 

JS:

$("#send").on("click", function() { 
    var html =""; 
    var counter = 1; 
    $('.wyksztalcenie').each(function() { 
     var selectValue = $(this).find('select').val(); 

     var inputOne = $(this).find('#nazwa').val(); 
     var inputTwo = $(this).find('#kierunek').val(); 
     var inputThree = $(this).find('#rok').val(); 

     html += "select-" + counter + "=" + selectValue + "&input-" + counter + "=" + inputOne + "&input-" + counter + "=" + inputTwo + "&input-" + counter + "=" + inputThree; 
     html += "&"; 
     counter++; 
    }); 
    html = html.substring(0, html.length-1); 

    // Send data here 
}); 

你可以看到工作演示在这里:http://jsfiddle.net/4egzF/

注意:将选择框ID更新为类。 Id必须是唯一的

+0

感谢您的帮助!! :)这是解决我的问题 – Tomek

+0

@Tomek,如果它解决了您的问题,upvote和应用我的答案将不胜感激。谢谢 –

0

假设上面的代码中的五个相同的副本,这样的事情应该工作,在这里您可以通过索引引用的.wyksztalcenie每个实例:

// selects the first (index zero) instance of the cloned div 
// substitute 1-4 for the zero to get the others 
// 
$('.wyksztalcenie').eq(0).find('select').val(); 

如果你想通过他们全部循环,使用each()

$('.wyksztalcenie').each(function() { 
    var myVal = $(this).find('select').val(); 
    // do something with myVal 
}); 
+0

如果我想要第五个克隆div的值,该怎么办? – Jai

+0

查看我添加的评论。 – isherwood

+0

有相同的ID,这是重复的gettting,这是一个无效的标记,如果发生这种情况,浏览器将采取页面中出现的第一个。 – Jai

0

添加name属性的select元素,并更换所有id属性与class 。 然后所有名称属性应该附加[](例如:kier[])。

然后,您可以在处理页面的数组中找到它们全部五个。