gpt4 book ai didi

javascript - 从select中获取值(value)并与DB比较以获得价格

转载 作者:行者123 更新时间:2023-11-29 12:34:35 25 4
gpt4 key购买 nike

我使用选择从不同的产品中进行选择,然后使用该值执行数据库查询咨询以获取产品的价格,然后用它设置输入标签。

<section id="products">
quantity: <input type="number" id="quantity"><br><br>
<section id="selectProd">
<?php
$query = $conn->query("SELECT name FROM Products ORDER BY name");
?>
Product: <select id="comProduct" class="comProduct">
<?php while ($option = $query->fetch_object()) { ?>
<option><?php echo $option->name; ?></option>
<?php } ?>
</select>
<script>
$(document).on("ready",function(){
$("#comProduct").on("click", function(){

var value = $("#comProduct option:selected").text();
<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "BERAKA";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$valuephp = $_GET['value'];
$query = $conn->query("SELECT price FROM products where name='$valorphp'");
?>

document.getElementById("ppu").value = "<?php $query->fetch_object(); ?>";
});
});
</script>
</section> <br>
Price per unit: <input type="text" id="ppu" >
</section>

不知道为什么不起作用,请帮忙

最佳答案

您很容易受到 sql injection attacks 的攻击。坐下来放松一下 - 当您的服务器获得 pwn3d 时,您的问题将变得毫无意义。

此外,您的代码也存在很大缺陷:

document.getElementById("ppu").value = "<?php $query->fetch_object(); ?>";

您的 fetch 调用不会任何有用的事情。 fetch 将返回一个对象,但由于您不捕获该对象或以任何方式输出它,因此数据库行数据将简单地丢失。即使 fetch 调用确实奇迹般地进行了输出,您也不能将 PHP 对象转储到 Javascsript 代码上下文中。

你需要更多类似这样的东西:

<?php 
...
$row = $query->fetch_object();
$price = $row->price;
?>
document.getElementById('ppu').value = <?php echo json_encode($price); ?>;

在不使用 json_encode() 的情况下,永远不要永远将文本从 PHP 直接转储到 JS 上下文中。您面临着将无效文本转储到 JS 代码块中的风险,这将触发 JS 语法错误,并杀死整个 <script>阻止该错误代码所在。始终使用 json_encode(),这样无论您将什么内容转储到 JS 代码中,该值都将是有效的 javascript。

关于javascript - 从select中获取值(value)并与DB比较以获得价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26998186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com