2014-12-02 4 views
-2

Я работаю с несколькими флажками с javascript и ajax. При щелчке по галочке javascript отправляет с ajax значения в trata.php (эти значения: checked if is true или false и id этого флажка) ... но идентификатор всегда показывает мне undefined .... можете ли вы направлять Я пожалуйста.Обновление нескольких флажков с javascript и ajax

Вот это JS:

$("div.feature").click(function() { 
    var checked = $(this).is(':checked'); 
    var Id = $(this).attr('id'); 
    var data = "Cara=" + checked + "&Id=" + Id; 
    $.ajax({ 
     type: "POST", 
     url: "trata.php?ts=" + new Date().getTime(), 
     data: data, 
     cache: false, 
     beforeSend: function() { 
      $("#tr").show(); 
      $("#t").empty(); 
     }, 
     success: function(response) { 
      $("#tr").hide(); 
      $("#t").append(response); 
     } 
    }) 
    return false; 
}); 

$("div.feature1").click(function() { 
    var checked = $(this).is(':checked'); 
    var Id = $(this).attr('id'); 
    var data = "Pieza=" + checked + "&Id=" + Id; 
    $.ajax({ 
     type: "POST", 
     url: "trata.php?ts=" + new Date().getTime(), 
     data: data, 
     cache: false, 
     beforeSend: function() { 
      $("#tr").show(); 
      $("#t").empty(); 
     }, 
     success: function(response) { 
      $("#tr").hide(); 
      $("#t").append(response); 
     } 
    }) 
    return false; 
}); 

В странице это код:

<table> 
    <tr> 
     <td> 
      <div class="feature" align="center"> 
       <input type="text" value="<?php echo $row['Id'] ?>" name="Id" id="Id" /> <!-- in this Id the value is 1 --> 
       <input type="checkbox" data-no-uniform="true" class="iphone-toggle" <?php if ($row[ 'Cara']=='1') {echo 'name="Cara" value="on" checked="checked"';} else { echo 'name="Cara" value="off"'; } ?>> 
      </div> 
      <div id="tr" style="display:none;" align="center"><img src="img/ajax-loaders/ajax-loader-1.gif" /> 
      </div> 
      <div id="t"></div> 
     </td> 
     <td> 
      <div class="feature1" align="center"> 
       <input type="text" value="<?php echo $row['Id']; ?>" name="Id" id="Id" /> <!-- in this Id the value is 2 --> 
       <input type="checkbox" data-no-uniform="true" class="iphone-toggle" <?php if ($row[ 'Pieza']=='1') {echo 'name="Pieza" value="on" checked="checked"';} else { echo 'name="Pieza" value="off"'; } ?>> 
      </div> 
      <div id="tr" style="display:none;" align="center"><img src="img/ajax-loaders/ajax-loader-1.gif" /> 
      </div> 
      <div id="t"></div> 
     </td> 
    </tr> 
</table> 

В trata.php // MySQL + PDO

<?php 
include('conn.php'); 
if(isset($_POST['Cara'])) { 
    try{ 
     $Id = $_POST['Id']; 
    if ($_POST['Cara'] == false) { 
     global $Cara; 
     $Cara = 0; 
    } else if ($_POST['Cara'] == true) { 
     global $Cara; 
     $Cara = 1; 
    }; 
     $sql = "UPDATE Trata SET 
     Cara = :Cara 
     WHERE Id= :Id"; 
     $stmt = $conn->prepare($sql); 
     $stmt->bindParam(':Cara', $Cara, PDO::PARAM_STR); 
     $stmt->bindParam(':Id', $Id, PDO::PARAM_INT); 
     $stmt->execute(); 
     echo "<div class='alert alert-block alert-primary fade in'> 
       <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> 
       ok. 
      </div>"; 
    }catch(PDOException $exception){ 
     echo "Error: " . $exception->getMessage(); 
    } 
} if(isset($_POST['Pieza'])) { 
    try{ 
     $Id = $_POST['Id']; 
    if ($_POST['Pieza'] == false) { 
     global $Pieza; 
     $Pieza = 0; 
    } else if ($_POST['Pieza'] == true) { 
     global $Pieza; 
     $Pieza = 1; 
    }; 
     $sql = "UPDATE Trata SET 
     Pieza = :Pieza 
     WHERE Id= :Id"; 
     $stmt = $conn->prepare($sql); 
     $stmt->bindParam(':Pieza', $Pieza, PDO::PARAM_STR); 
     $stmt->bindParam(':Id', $Id, PDO::PARAM_INT); 
     $stmt->execute(); 
     echo "<div class='alert alert-block alert-primary fade in'> 
       <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> 
       ok. 
      </div>"; 
    }catch(PDOException $exception){ 
     echo "Error: " . $exception->getMessage(); 
    } 
} 
$dbh = null; 
?> 

Другое дело loading ajax показывает мне только в первом td, и у меня есть 8 td-файлов.

+0

Это немного стены-код. Это слишком много для чтения, хотя и плохо сформировавшегося. Не могли бы вы ограничить его только соответствующими фрагментами кода и результатами, которые вы видите? – OneHoopyFrood

+0

Я смотрел входные флажки и видел, что нет идентификаторов ... также, в местах, где вы указываете id, все они «Id»; Иды должны быть различны. – rfornal

+0

@OneHoopyFrood проблема У меня есть идентификатор каждого идентификатора для флажка ... checkbox catch checked (true или false), но id всегда неопределен ... Я пробовал с '

' изменение div для формы в JS, но всегда показывать мне id undefined – user3236149

ответ

0

div.feature и div.feature1 не имеют идентификаторов. Вот почему $ (this) .attr ('id') возвращает undefined. Попробуйте следующее:

$('div.feature input:checkbox').click(function(){ 
    var Id = $(this).attr('id'); 
}); 
+0

JS не поймал этот клик – user3236149

+0

Я быстро вставил вместе это jsfiddle, и он работает: http://jsfiddle.net/cleverKeith/3ssct8ke/ – ShadeTreeDeveloper

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