在javascript和php上具有问题打开模式
我在javascript中遇到了一些问题,我想,它可以打开一个小窗口,但我不知道它现在怎么会不工作。下面是我的javascript代码以及我的php和html代码在javascript和php上具有问题打开模式,javascript,php,jquery,Javascript,Php,Jquery,我在javascript中遇到了一些问题,我想,它可以打开一个小窗口,但我不知道它现在怎么会不工作。下面是我的javascript代码以及我的php和html代码 <?php require_once '../core/init.php'; $id = $_POST['id']; if(is_numeric($id) && $id > 0 && $id == round($id, 0)){ $id = $_POST['id']; } else {
<?php
require_once '../core/init.php';
$id = $_POST['id'];
if(is_numeric($id) && $id > 0 && $id == round($id, 0)){
$id = $_POST['id'];
} else {
exit;
}
$id = (int)$id;
$sql = "SELECT * FROM products WHERE id = '$id'";
$result = $db->query($sql);
$product = mysqli_fetch_assoc($result);
$brand_id = $product['brand'];
$sql = "SELECT brand FROM brand WHERE id = '$brand_id'";
$brand_query = $db->query($sql);
$brand = mysqli_fetch_assoc($brand_query);
$sizestring = $product['sizes'];
$size_array = explode(',', $sizestring);
?>
<!-- Details Modal -->
<?php ob_start(); ?>
<div class="modal fade details-1" id="details-modal" tabindex="-1" role="dialog" aria-labelledby="details-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button class="close" type="button" onclick="closemodal()" aria-label="close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title text-center"><?php echo $product['title']; ?></h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-sm-6">
<div class="center-block">
<img src="<?php echo $product['image']; ?>" alt="<?php echo $product['title']; ?>" class="details img-responsive">
</div>
</div>
<div class="col-sm-6">
<h4>Details</h4>
<p><?php echo $product['description']; ?></p>
<hr>
<p>Price: $<?php echo $product['price']; ?></p>
<p>Brand: <?php echo $brand['brand']; ?></p>
<form action="add_cart.php" method="post">
<div class="form-group">
<div clss="col-xs-3">
<label for="quantity">Quantity:</label>
<input type="text" class="form-control" id="quantity" name="quantity">
</div>
</div>
<div class="form-group">
<label for="size">Size:</label>
<select name="size" id="size" class="form-control">
<option value=""></option>
<?php foreach($size_array as $string) {
$string_array = explode(':', $string);
$size = $string_array[0];
$quantity = $string_array[1];
echo '<option value="'.$size.'">'.$size.' ('.$quantity.' Available)</option>';
} ?>
</select>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" onclick="closemodal()">Close</button>
<button class="btn btn-warning" type="submit"><span class="glyphicon glyphicon-shopping-cart"></span>Add To Cart</button>
</div>
</div>
</div>
</div>
<script>
function closemodal(){
jQuery ('#details-modal').modal('hide');
setTimeout(function(){
jQuery('#details-modal').remove();
jQuery('.modal-backdrop').remove();
},500);
}
</script>
<?php echo ob_get_clean(); ?>
查看var_dump$产品后;结果:
很明显,在yourproducts表中没有名为“brand”的字段
与品牌最接近的域名是band,我认为这是一个拼写错误。因此,如果您更改代码的这一行:
`$brand_id = $product['brand'];`
对此
`$brand_id = $product['band'];`
然后您将解决错误
注意:未定义索引:品牌
在这个查询中,$sql=SELECT*FROM-products,其中id='$id';由于$id是整数,因此无需将其括在单引号中,您可以使用如下方式进行查询:
$sql = "SELECT * FROM products WHERE id = $id";
<?php
require_once '../core/init.php';
$id = $_POST['id'];
if(is_numeric($id) && $id > 0 && $id == round($id, 0)){
$id = $_POST['id'];
} else {
exit;
}
$id = (int)$id;
$sql = "SELECT products.*, brand.brand FROM products left join brand on products.band = brand.id WHERE products.id = $id";
$result = $db->query($sql);
$product = mysqli_fetch_assoc($result);
$sizestring = $product['sizes'];
$size_array = explode(',', $sizestring);
?>
另外,看看您的查询,您有两个查询,您可以使用一个简单的联接将它们组合到一个查询中
您有'SELECT*FROM products WHERE id='$id',以及选择brand FROM brand WHERE id='$brand\u id'
在表产品中,字段栏位是表品牌字段id的外键,因此您只需编写以下查询:
$sql = "SELECT products.*, brand.brand FROM products left join brand on products.band = brand.id WHERE products.id = $id";
因此,detailsmodal.php文件顶部的php部分将如下所示:
$sql = "SELECT * FROM products WHERE id = $id";
<?php
require_once '../core/init.php';
$id = $_POST['id'];
if(is_numeric($id) && $id > 0 && $id == round($id, 0)){
$id = $_POST['id'];
} else {
exit;
}
$id = (int)$id;
$sql = "SELECT products.*, brand.brand FROM products left join brand on products.band = brand.id WHERE products.id = $id";
$result = $db->query($sql);
$product = mysqli_fetch_assoc($result);
$sizestring = $product['sizes'];
$size_array = explode(',', $sizestring);
?>
你必须把它改成
<p>Brand: <?php echo $product['brand']; ?></p>
注意:由于您使用的是mysqli,因此强烈建议您使用mysqli,而不是将变量直接放入查询中