2013-06-29 64 views
0

我有一个包含选择字段id =“projects”的表单,它在被更改时显示(使用js)隐藏选择字段'task'通过查询动态填充所选项目的任务D b。然后用户可以输入在选项中的proj_id,task_id组合中更新的小时数。jquery动态添加行有问题

echo '<div id="dynform"><div class="rowhours"><select id="projects" name="project">'; 
if(mysqli_num_rows($res)==0) 
    echo '<option>No Projects assigned</option>'; 
else{ 
    echo '<option value="0">Project - Choose one</option>'; 
    while (list($proj_id, $title) = mysqli_fetch_row($res)) 
    { 
     echo "<option value=$proj_id>$title</option>"; 
    } 
} 

echo '</select></div><input type="button" id="add"></div>'; 
<select name="task" class="tasks" onchange="showOther(this, 'new');" onmouseover="showOther(this, 'new');"></select><br> 

function showOther(fieldObj, otherFieldID) //Function displays text box for creating a new task on Addhours.php 
      {          //for the selected project when "Enter New Task" option chosen 
       var fieldValue = fieldObj.options[fieldObj.selectedIndex].value; 
       var otherFieldObj = document.getElementById(otherFieldID); 

       otherFieldObj.style.visibility = (fieldValue=='other') ? '' : 'hidden'; 

       return; 
      } 

现在我添加了一个'添加行'按钮,这会生成多次相同的表单。

<input type="button" value="Add Row" id="add"> 

jquery used to add rows: $(document).ready(function() { 
    $('#add').click(function() { 
     $('.rowhours').clone().appendTo('#dynform'); 
    }); 
}); 

现在,当我改变任何行的项目,所有行的选择字段会受到影响的任务,我知道这是因为他们有相同的ID的。

问题是我如何让他们有不同的Id,并能够使用jquery以相同的方式单独使用它们。另外截至目前,我只是更新使用if(isset($ _ POST ['submit']))现在我可以使用多行?

我这里有一个工作示例http://fracktal.in/tms/addhours.php

我基本上是在寻找有一个项目[]和任务[]我不知道如何访问使用jQuery或获得的形式公布值提交更新分贝

+0

'#dynform'哪里? – mishik

+0

你能分享代码showOther功能 –

+0

我更新了代码 –

回答

0

一旦你添加rowhours访问的最后一个元素并更改其ID

$(".rowhours).last().attr("id","newId"); 
+0

你错过了一个双引号。 –

0

您可以轻松地使用数组,只是命名你的领域项目[](没有项目),然后用$ _ POST [”访问它们项目'] [0], $ _POST ['project'] [1]等。

$total = count($_POST['project']); 

foreach($_POST['project'] as $num=>$project) { 
    // do your code here, send to DB or whatever 
    // $project contains value of input (or select) and $num contains number of row 
} 
+0

但是$ _POST如何知道添加了多少行? –

+1

count($ _ POST ['project']) – vladkras