php例如将11视为1

时间:2018-11-12 00:18:01

标签: javascript php mysql arrays

function zwrot() {
   var zwrot = document.getElementsByClassName("zwroc");
   var i;
   for (i = 0; i < zwrot.length; i++) {
      if(zwrot[i].checked){
        parseInt(zwrot[i])
        var ajax = $.ajax({
            url: 'php/request.php',
            type: 'POST',
            data: {zwrot: zwrot[i].value},
            success: function(data)
            {
               $.growl.notice({ 
                    title: "INFO", 
                    message: "Oddano książkę" });
            }
        })
      }
   }
   setTimeout(function() { 
                  location.reload()
              }, 2000
   );
}

php代码:

if(isset($_POST['zwrot'])) { 
      $zwrot=$_POST['zwrot']; 
      $n = count($zwrot); 
      for ($i=0;$i<$n; $i++){ 
           $data=date("d-m-Y"); 
           $zapytanie5 = mysqli_query ($link, "UPDATE zamowienie SET data_zwrotu='$data' WHERE id_zamowienie=$zwrot[$i]"); 
           $zapytanie6 = mysqli_query ($link, "UPDATE ksiazka INNER JOIN zamowienie ON ksiazka.id_ksiazka=zamowienie.id_ksiazka SET ilosc=ilosc+1 WHERE id_zamowienie=$zwrot[$i];");
      }
}

一切正常,直到id是一位数字。该问题出现在两位数数字上,例如php将11视为1

1 个答案:

答案 0 :(得分:0)

我不认为您会将任何数组传递给您的php。这不是您通过ajax传递和接收数组的方式,为此,您需要json。

无论如何,请尝试以下操作:

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

    $zwrot=$_POST['zwrot']; 

    $data=date("d-m-Y"); 
    $zapytanie5 = mysqli_query ($link, "UPDATE zamowienie SET data_zwrotu='$data' WHERE id_zamowienie=$zwrot"); 
    $zapytanie6 = mysqli_query ($link, "UPDATE ksiazka INNER JOIN zamowienie ON ksiazka.id_ksiazka=zamowienie.id_ksiazka SET ilosc=ilosc+1 WHERE id_zamowienie=$zwrot;");

}

或者如果要按数组传递:

function zwrot() {
   var zwrot = document.getElementsByClassName("zwroc");
   var i;

   var zwrot_array = [];

   for (i = 0; i < zwrot.length; i++) {
      if(zwrot[i].checked){
        zwrot_array[i] = zwrot[i].value;
      }
   }

   var ajax = $.ajax({
        url: 'php/request.php',
        type: 'POST',
        data: {zwrot: JSON.stringify(zwrot_array)},
        success: function(data)
        {
           $.growl.notice({ 
                title: "INFO", 
                message: "Oddano książkę" 
            });

            setTimeout(function() { 
                  location.reload()
              }, 2000
           );
        }
    });
}

PHP:

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

    $zwrots = json_decode($_POST['zwrot']); 
    $data=date("d-m-Y"); 

    foreach ($zwrots as $zwrot) {
        $zapytanie5 = mysqli_query ($link, "UPDATE zamowienie SET data_zwrotu='$data' WHERE id_zamowienie=$zwrot"); 
        $zapytanie6 = mysqli_query ($link, "UPDATE ksiazka INNER JOIN zamowienie ON ksiazka.id_ksiazka=zamowienie.id_ksiazka SET ilosc=ilosc+1 WHERE id_zamowienie=$zwrot;");
    }
}