从数据库中提供行的Php下拉列表
我有一个表单,让用户购买一些产品。我想通过一个下拉菜单传递产品,我正试图通过一个while循环来实现这一点。 问题是我看到了$row['nome']。写在表格里,就像另一个一样。除此之外,当我检查页面时,我会得到这部分注释:$query->link 在代码中什么似乎不起作用? 多谢各位从数据库中提供行的Php下拉列表,php,Php,我有一个表单,让用户购买一些产品。我想通过一个下拉菜单传递产品,我正试图通过一个while循环来实现这一点。 问题是我看到了$row['nome']。写在表格里,就像另一个一样。除此之外,当我检查页面时,我会得到这部分注释:$query->link 在代码中什么似乎不起作用? 多谢各位 <?PHP session_start(); $host="xxxx"; // Host name $username="xxxx"; // Mysql username $pa
<?PHP
session_start();
$host="xxxx"; // Host name
$username="xxxx"; // Mysql username
$password="xxxx"; // Mysql password
$db_name="xxxxx"; // Database name
$tbl_name="utilizador";
// Connect to server and select databse.
$link = mysqli_connect("$host", "$username", "$password")or die("cannot connect");
mysqli_select_db($link , $db_name)or die("cannot select DB");
// CHECK LOG IN
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo "";
} else {
header('Location: ../index.php');
}
// END OF LOG IN CHECK
$link->close();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Formulario De Encomenda</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<form action="" method="post">
<input type="hidden" name="codigoDeBarras">
<input type="hidden" name="NIF">
<input type="hidden" name="valorUnidade">
<input type="hidden" name="valorTotal">
<p>
<label>Data</label>
<input type="date" name="DataDeEncomenda">
</p>
<p>
<label>Escolher Produto</label>
<select id="produtos">
<?php/
$query = $link->query("SELECT * FROM produto");
while ( $row = $query->fetch_array() ) {
echo "<option data-code=". $row['codigoDeBarras'] ." data-price=". $row['preco'] .">" $row['nome'] ."</option>";
}
?>
</select>
</p>
<p>
<label>Escolher Fornecedor</label>
<select id="fornecedor">
<?php/
$query = $link->query("SELECT * FROM fornecedor");
while ( $row = $query->fetch_array() ) {
echo "<option data-nif=". $row['NIF'] .">". $row['nome'] ."</option>";
}
?>
</select>
</p>
<p>
<label>Quantidade</label>
<input type="number" min="1" name="Quantidade" value="1">
</p>
<p>
<label>Preco(Unidade)</label>
<span id="price">0.00</span>
</p>
<p>
<label>Valor Total</label>
<span id="total_price">0.00</span>
</p>
</form>
<script type="text/javascript">
jQuery(document).ready(function($){
var codigoDeBarras = $('input[name="codigoDeBarras"]');
var nif = $('input[name="NIF"]');
var valorUnidade = $('input[name="valorUnidade"]');
var valorTotal = $('input[name="valorTotal"]');
var quantidade = $('input[name="Quantidade"]');
$('select#produtos').change(function(){
if( !$(this).find('option:selected').val() == '' ){
var price = parseInt($(this).find('option:selected').attr('data-price'));
var code = $(this).find('option:selected').attr('data-code');
$('#price').html(price);
$('#total_price').html(price * parseInt(quantidade.val()));
codigoDeBarras.val(code);
valorUnidade.val(price);
valorTotal.val(price * parseInt(quantidade.val()));
}
});
quantidade.bind('click keyup', function(){
if( !$('select#produtos').find('option:selected').val() == '' ){
var price = $('select#produtos').find('option:selected').attr('data-price');
$('#total_price').html(price * parseInt($(this).val()));
valorTotal.val(price * parseInt(quantidade.val()));
}
});
$('select#fornecedor').change(function(){
if( !$(this).find('option:selected').val() == '' ){
nif.val($(this).find('option:selected').attr('data-nif'));
}
});
});
</script>
</body>
</html>
代码中缺少一个点。。这是代码
echo "<option data-code=". $row['codigoDeBarras'] ." data-price=". $row['preco'] .">" $row['nome'] ."</option>";
这应该写为
echo "<option data-code=". $row['codigoDeBarras'] ." data-price=". $row['preco'] .">". $row['nome'] ."</option>";
因为您混合了HTML和PHP。你也可以这样写
<?php
$query = $link->query("SELECT * FROM fornecedor");
while ( $row = $query->fetch_array() ) { ?>
<option data-nif="<?=$row['NIF']?>"><?=$row['nome']?></option>
<?php
}
?>
希望这能对你有所帮助。看看echo的$row['preco'].>$row['nome']->你缺了一个点,也许还有更多的事情……已经检查并更正了缺点,但运气不好:|谢谢,但我已经注意到并尝试过了,但还是一样,给我看了$row['nome']。在字段表单中:|尝试这种方式$数据数组['nome']。;