Проблема вывода количества книг в системе управления библиотеками

#javascript #php

Вопрос:

Я создаю систему управления библиотеками с использованием PHP, JavaScript. Каждая книга имеет уникальный код. Там будет система в виде страниц заимствования книг. Если вы введете код любой книги, название книги и ее количество будут указаны. Мне удалось получить название книги с помощью JavaScript. Но я не мог принести такое количество книг.

issue-book.php

 function getbook() {
 $("#loaderIcon").show();
jQuery.ajax({
url: "get_book.php",
data:'bookid=' $("#bookid").val(),
type: "POST",
success:function(data){
$("#get_book_name").html(data);
$("#loaderIcon").hide();
},
error:function (){}
});
}


//function for quantity
function getquantity() {
$("#loaderIcon").show();
jQuery.ajax({
url: "get_quantity.php",
data:'bookid2=' $("#bookid2").val(),
type: "POST",
success:function(data){
$("#get_quantity").html(data);
$("#loaderIcon").hide();
},
error:function (){}
});
}

</script> 
<style type="text/css">
.others{
color:red;
}

</style>


</head>
<body>
  <!------MENU SECTION START-->
<?php include('includes/header.php');?>
<!-- MENU SECTION END-->
<div class="content-wra
<div class="content-wrapper">
     <div class="container">
    <div class="row pad-botm">
        <div class="col-md-12">
             <h4 class="header-line">Issue a New Book</h4>
            
                        </div>

 </div>
<div class="row">
<div class="col-md-10 col-sm-6 col-xs-12 col-md-offset-1"">
<div class="panel panel-info">
<div class="panel-heading">
Issue a New Book
</div>
<div class="panel-body">
<form role="form" method="post">

<div class="form-group">
<label>Student id<span style="color:red;">*</span></label>
<input class="form-control" type="text" name="studentid" id="studentid" onBlur="getstudent()" 
autocomplete="off"  required />
</div>

<div class="form-group">
<span id="get_student_name" style="font-size:16px;"></span> 
</div>

 <div class="form-group">
 <label>ISBN Number or Book Title<span style="color:red;">*</span></label>
 <input class="form-control" type="text" name="booikid" id="bookid" onBlur="getquantity()"  
 required="required" />
 </div>

 <div class="form-group">
 <select  class="form-control" name="bookdetails" id="get_book_name" readonly></select>
 </div>

 <div class="form-group">
 <select  class="form-control" name="quantity" id="get_quantity" readonly></select>
 </div>

<button type="submit" name="issue" id="submit" class="btn btn-info">Issue Book </button>

                                </form>
                        </div>
                    </div>
                        </div>

    </div>

</div>
</div>
 

get_quantity.php

 <?php 
require_once("includes/config.php");
if(!empty($_POST["bookid2"])) {
$bookid2=$_POST["bookid2"];

$sql ="SELECT Quantity, id FROM tblbooks WHERE (ISBNNumber=:bookid2)";
$query= $dbh -> prepare($sql);
$query-> bindParam(':bookid2', $bookid2, PDO::PARAM_STR);
$query-> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query -> rowCount() > 0)
{
foreach ($results as $result) {?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result- 
>Quantity);?></option>
<b>Book Name :</b> 
<?php  
echo htmlentities($result->Quantity);
echo "<script>$('#submit').prop('disabled',false);</script>";
}
 }
else{?>

<option class="others"> Invalid ISBN Number</option>
<?php
echo "<script>$('#submit').prop('disabled',true);</script>";
}
}



?>
 

введите описание изображения здесь

Комментарии:

1. $_POST['bookid2'] не существует, попробуйте с $_POST['quantity']

Ответ №1:

Я нашел решение

       //function for quantity
    function getquantity() {
      $("#loaderIcon").show();
  jQuery.ajax({
     url: "get_quantity.php",
   data:'bookid2=' $("#bookid").val(),
   type: "POST",
     success:function(data){
  $("#get_quantity").html(data);
  $("#loaderIcon").hide();
  },
  error:function (){}
   });
   }
 

Ответ №2:

Это не совсем ответ на ваш вопрос, но вы можете значительно облегчить себе жизнь, если добавите некоторые функции обнаружения ошибок. Например, в ваших вызовах AJAX отчет об ошибках теперь выглядит следующим образом:

 jQuery.ajax({ ... },
    error: function (){}
});
 

Это совершенно бесполезно. Почему бы не сделать:

 jQuery.ajax({ ... },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
               alert("ERROR: "   textStatus);                 
           }
});
 

Таким образом, вы сразу узнаете, возникла ли проблема с вашим вызовом AJAX или нет.

То же самое с PDOStatement::execute (), который возвращается TRUE при успешном и FALSE неудачном выполнении. Это полезно знать. Вы можете дать себе некоторую обратную связь.

Вы также можете использовать инструменты разработчика вашего браузера, чтобы увидеть, что делает ваш код Javascript.

Отладка кода часто занимает столько же времени, сколько и его написание в первую очередь. Почему бы не сделать это немного проще для себя?