2016-03-12 6 views
0

У меня есть форма, которая генерируется по выбору пользователяКак применить изменения к динамической форме

это код:

<select id="skillcat" name="skillcat[]" class="form-control" onChange="getSkillDescription(this.value)"> 
<option value ="">SELECT SKILL CATEGORY</option> 
<?php 
    foreach($results as $displayCategory) { ?> 
    <option value="<?php echo $displayCategory["SkillCatID"]; ?>"><?php echo $displayCategory["SkillCatName"]; ?></option> 
<?php } ?> 
</select> 
<i class="arrow"></i> 

<select id="skilldes" name="skilldes[]" class="form-control"></select> 
<i class="arrow"></i> 

так, когда я выбрал значение для первого варианта, то это будет измените значение для второго параметра.

это Javascript для getSkillDescription()

<script type="text/javascript"> 
function getSkillDescription(val) { 
$.ajax({ 
type: "POST", 
url: "get_skilldescription.php", 
data:'skill_id='+val, 
success: function(data){ 
$("#skilldes").html(data); 
}});} 
</script> 

Сценарий направится get_skilldescription.php. Ниже приведен код:

<?php 
include("include/dbconn.php"); 
session_start(); 
    $kp = $_SESSION["id"]; 
function runQuery($query) { 
    $result = mysql_query($query); 
    while($row=mysql_fetch_assoc($result)) { 
     $resultset[] = $row; 
    }  
    if(!empty($resultset)) 
     return $resultset; 
} 

if(!empty($_POST["skill_id"])) { 

$skill=$_POST["skill_id"]; 

switch($skill) 
{ 
case 1: $query ="SELECT * FROM skill WHERE skillCatID = 1"; 
      $results = runQuery($query); break; 
    case 2: $query ="SELECT * FROM skill WHERE skillCatID = 2"; 
      $results = runQuery($query); break; 
    case 3: $query ="SELECT * FROM skill WHERE skillCatID = 3"; 
      $results = runQuery($query); break; 
    case 4: $query ="SELECT * FROM skill WHERE skillCatID = 4"; 
      $results = runQuery($query); break; 
    case 5: $query ="SELECT * FROM skill WHERE skillCatID = 5"; 
      $results = runQuery($query); break; 
    case 6: $query ="SELECT * FROM skill WHERE skillCatID = 6"; 
      $results = runQuery($query); break; 
    case 7: $query ="SELECT * FROM skill WHERE skillCatID = 7"; 
      $results = runQuery($query); break; 
    case 8: $query ="SELECT * FROM skill WHERE skillCatID = 8"; 
      $results = runQuery($query); break; 
    case 9: $query ="SELECT * FROM skill WHERE skillCatID = 9"; 
      $results = runQuery($query); break; 
    case 10: $query ="SELECT * FROM skill WHERE skillCatID = 10"; 
      $results = runQuery($query); break; 
    case 11: $query ="SELECT * FROM skill WHERE skillCatID = 11"; 
      $results = runQuery($query); break; 
    case 12: $query ="SELECT * FROM skill WHERE skillCatID = 12"; 
      $results = runQuery($query); break; 
    case 13: $query ="SELECT * FROM skill WHERE skillCatID = 13"; 
      $results = runQuery($query); break; 
    case 14: $query ="SELECT * FROM skill WHERE skillCatID = 14"; 
      $results = runQuery($query); break; 
    case 15: $query ="SELECT * FROM skill WHERE skillCatID = 15"; 
      $results = runQuery($query); break; 
    case 16: $query ="SELECT * FROM skill WHERE skillCatID = 16"; 
      $results = runQuery($query); break; 
    case 17: $query ="SELECT * FROM skill WHERE skillCatID = 17"; 
      $results = runQuery($query); break; 
    case 18: $query ="SELECT * FROM skill WHERE skillCatID = 18"; 
      $results = runQuery($query); break; 


} 
?> 
<option value="">Select Skill</option> 
<?php 
foreach($results as $displayskill) { 
?> 
<option value="<?php echo $displayskill["SkillID"]; ?>"><?php echo $displayskill["SkillDescription"]; ?></option> 
<?php 
} 
} 
?> 

Теперь проблема, когда я добавляю новую форму, это создаст еще два варианта. Но когда я изменил первый вариант вновь созданной формы, он изменит значения параметра первой формы, а не только что созданной формы. Надеюсь, вы, ребята, поможете мне это исправить. Спасибо

ответ

1

Вы добавляете новую форму, где элементы имеют те же идентификаторы, что и первая форма.

Идентификаторы уникальны, убедитесь, что каждая форма имеет поля с уникальными идентификаторами.

Кроме того, вы вызываете снова getSkillDescription, который явно устанавливает первый вариант выбора $("#skilldes"), поэтому вам нужно сделать эту функцию общей, где вы передадите идентификатор выбранного вами заполнения.

function getSkillDescription(val, selectID) { 
    $.ajax({ 
     type: "POST", 
     url: "get_skilldescription.php", 
     data:'skill_id='+val, 
     success: function(data){ 
      $("#" + selectID).html(data); 
     } 
    }); 
} 
+0

Как я могу присвоить идентификатор уникальным образом. –

+0

Функция addRow (tableID) { var table = document.getElementById (tableID); var rowCount = table.rows.length; if (rowCount <20) {// ограничить пользователя от создания полей больше ваших ограничений var row = table.insertRow (rowCount); var colCount = table.rows [0] .cells.length; для (var i = 0; i

+0

выше - код для создания новой строки –

0

Вы используете тот же ID #skilldes, чтобы заполнить свою вторую форму с ответом от вашего вызова Ajax. Обязательно используйте уникальный идентификатор для каждого.

Смежные вопросы