#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.
Отладка кода часто занимает столько же времени, сколько и его написание в первую очередь. Почему бы не сделать это немного проще для себя?