2014-02-11 2 views
0

У меня есть таблица, которая динамически генерируется из значений таблицы MySQL. Каждая зарегистрированная запись имеет флажок.Опубликованные проверенные значения флажка, которые генерировали динамически для php, используя jquery

list.php

$query="SELECT * FROM drivers ORDER BY name"; 
$query=$mysqli->query($query); 
$queryN=mysqli_num_rows($query); 
if($queryN!=0){ 
    while($row=mysqli_fetch_assoc($query)){ 
     $id=$row['id']; 
     $name=$row['name']; 

     $output .='<tr id="'.$id.'"> 
        <td>'.$name.'</td> 
        <td><input type="checkbox" name="assign" class="assigned" value='.$id.'"/></td> 
        </tr>'; 
    } 
}else{ 
     $output .='<tr> 
        <td colspan="2">No data found</td> 
        </tr>'; 
} 

HTML-файл

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

Теперь JQuery скрипт, который будет отправлять только значения проверяемых флажков в таблице:

<script> 

$(document).ready(function(){ 
    $('.send').click(function(){ 

     var checkValues = $('input[name=assign]:checked').map(function() 
     { 
      return $(this).val(); 
     }).get(); 

     $.ajax({ 
      url: 'assigndriver.php', 
      type: 'post', 
      data: { ids: checkValues }, 
      success:function(data){ 

      } 
     }); 
    }); 
}); 

</script> 

Наконец , файл PHP assigndriver.php, который будет вставлять массив со значениями только отмеченных флажков:

include "../connect_to_mysql.php"; 

    $id = array(); 

    if(isset($_POST['ids'])){ 

    $id = $_POST['ids']; 
     for ($i = 0; $i < count($id); $i++) { 
      $id_new = $id[$i]; 
      $sql="INSERT INTO teste (campo) VALUES ('$id_new')";  
     }  
    } 

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

Спасибо

ответ

2

Попробуйте изменить:

$('.send').click(

к:

$('#send').click(

поскольку вы назначаете id="send" не class="send" к кнопке ввода

+0

Спасибо! Я сделал это изменение, но все же не публиковал значения! –

0

Вы должны изменить название флажок как name = "something []". Поэтому он будет знать, что это массив, и значения будут опубликованы правильно. Надеюсь, это поможет вам.

+0

Извините, ребята! Все еще не работает. В базу данных не добавлено значение. –

0

В jquery вы вызываете кнопку отправки, используя id , отправляете, но при вызове функции вы используете . оператор insted # оператора.

Разница

the difference between "." operator and "#" operator is when you calling a 
    class you should use "." operator. 

    Example: 
      HTML: 
       <input type="button" name="send" class="send" value="Send" /> 

     JQUERY: 
       $('.send').click(function(){ 

        //insert your code here.. 
       }); 


    but if you are going to call an id of a html element than use "#" operetor 

    Example: 
      HTML: 
       <input type="button" name="send" id="send" value="Send" 
       onclick="send_data();" /> 



     JQUERY: 
       function send_data(){ 
       $('#send').click(function(){ 

        //insert your code here.. 
       });} 

Надеется, что это поможет ...

+0

Даже заменив класс id = "send" и $ ("# send"). Click (... значения по-прежнему не могут быть отправлены и вставлены в базу данных. –

+0

ok измените свой СПИСОК.PHP-код while ($ row = mysqli_fetch_assoc ($ query)) до ($ row = mysqli_fetch_array ($ query)) ... надеюсь, что это сработает. Если его работа проголосует за пост ... hav fun – Nemo

+0

Оба способа будут работать @ Дрон. –

0

Правильного способ сделать значения каждого зарегистрированного флажка будет размещен в файл PHP делает следующий сценарий:

$(document).ready(function(){ 
    $('#btnadd').click(function(){ 

     var checkValues = $('input[name="assign[]"]:checked').map(function() 
     { 
      return $(this).val(); 
     }).get(); 

     $.ajax({ 
      url: 'assigndriver.php', 
      type: 'post', 
      data: { ids: checkValues }, 
      success:function(data){ 

      } 
     }); 
    }); 
}); 

Кроме того, нам нужно изменить динамический вывод в файл PHP:

$output .='<td align="center"><input type="checkbox" name="assign[]" id="add_driver'.$id.'" value="'.$id.'"/></td>'; 

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

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