2016-01-20 57 views
1

我正在插入與PHP和AJAX插入。這是代碼:檢查這與未標記的複選框,如果

<input type='checkbox' id="moralibro" name="moralibro" value="mora"> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('.error').hide(); 
    $(".eliminarp").click(function() { 
     //Obtenemos el valor del campo mora 
     var moralibro = $("input#moralibro").val(); 
     //Construimos la variable que se guardará en el data del Ajax para pasar al archivo php que procesará los datos 
      var parent = $(this).parent().attr('id'); 
     var service = $(this).parent().attr('data'); 
     var dataString = 'id='+service + '&moralibro=' + moralibro ; 
     $.ajax({ 
      type: "POST", 
      url: "eliminarprestamo.php", 
      data: dataString, 
      success: function() {    
       $('#delete-ok').empty(); 
       $('#delete-ok').append('<div class="correcto">El prestamo se a eliminado correctamente a id='+service+'.</div>').fadeIn("slow"); 
       $('#'+parent).fadeOut("slow"); 
       //$('#'+parent).remove(); 
      } 
     }); 
    $('#categoria-registrar')[0].reset(); 
     return false; 
    }); 
}); 
</script> 

這是不插入eliminarprestamo.php

if (isset($_POST['moralibro'])) 
{ 
$query = "INSERT INTO multas_estudiante(cedula_estudiante) 
    VALUES ('12345')"; 
    $result = pg_query($query) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error()); 
} 

我已經試過if (isset ($ _ POST ['moralibro']))但仍使插入選中該複選框,也與if ($ _ POST ['moralibro']! = "")

文件沒有更多的放置它,在一些AJAX中受到影響?

+0

有所回升那麼'$ _POST ['moralibro']'的價值是什麼? (在php腳本中) – Naruto

+0

我不明白 – Camaliet

+0

你可以嘗試:'if(isset($ _ POST ['moralibro'])&&!empty($ _ POST ['moralibro']))'檢查值是否_actually_通過。如果未選中,複選框可能會傳遞一個空值,這會使'isset()=> true'。 – somethinghere

回答

1

$_POST['moralibro']將始終設置,因爲如果theres沒有值,它將是""或一個空白字符串。

更改此:

if(isset($_POST['moralibro'])) 

這樣:

if(!empty($_POST['moralibro'])) 

也。我注意到你的input的靜態值爲"mora"。如果這個值總是在那裏而不被刪除,那麼插入總是會發生。你需要什麼條件才能實現插入?


UPDATE:

既然你說的條件取決於該複選框是否被選中或沒有,那麼你需要在前端實現代碼,因爲您要發送一個AJAX調用。

做到這一點的方法是這樣的:

var moralibro = ""; 
var $m_input = $("input#moralibro"); 
if ($m_input.is(":checked")) { 
    moralibro = $m_input.val(); 
} 
var dataString = 'id='+service + '&moralibro=' + moralibro ; 

一旦你這樣做,你將發送一個空字符串或"mora"到PHP然後應該能夠通過empty()

+0

條件是如果不勾選複選框不插入已完成,但如果你這樣飛,所以如果包括 – Camaliet

+0

和探針,刪除「value =」之類的東西,總是執行插入 – Camaliet

+0

檢查我更新的答案(你可能需要刷新你的頁面) – CodeGodie