我正在开发一个使用 MySQL 数据库的网站,并且使用 PHP 进行编码。我有一个带有输入字段的上传页面。在此页面上有一个下拉输入字段列表,我将选项与 mysqli_query 选择一起放置。我在同一页面上有另一个表单,用户可以在其中向 MySQL 数据库添加一个新项目,该数据库也应该添加到下拉输入字段中。
我的想法是将从 MySQL 中选择项目的代码放入一个函数中,并在添加新项目后调用它,但是我在函数内部的连接参数上遇到了问题,因为它们在函数内部似乎未定义。也许我应该将连接连接到另一个函数?
另一件事是我想在不刷新页面的情况下实现上面写的(在下拉列表中看到新选项)。我需要 AJAX 来实现这一目标吗?现在,当按下提交按钮以将新项目添加到列表时,页面会自动刷新。
感谢任何帮助。谢谢!
我的代码在页面上的相应部分是: (这是当前的工作版本,没有所需的解决方案)
//making the list for the drop down input field
include "./shortscript/connect_to_mysqli.php";
$sql = mysqli_query($dblink, "SELECT DISTINCT * FROM items") or die(mysql_error());
$count = mysqli_num_rows($sql);
$item_list = '<option value=""></option>';
if($count > 0) {
while ($row = mysqli_fetch_array($sql)){
$item_list .= '<option value="'.$row['item_id'].'">'.$row['brand']
.' '.$row['model'].' '.$row['category'].'</option>';
}
}
mysqli_close($dblink);
//test input function
function test_input($link, $data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = mysqli_real_escape_string($link, $data);
return $data;
}
//adding new item on the other form
if(isset($_POST['submit_new item'])) {
include "./shortscript/connect_to_mysqli.php";
$brand = test_input($dblink, $_POST['brand']);
$model = test_input($dblink, $_POST['model']);
$category = test_input($dblink, $_POST['category']);
if($sqlAddCamera =
mysqli_query($dblink, "INSERT INTO items (brand, model, "
. "category) VALUES"
. "('$brand', '$model', '$category')")
or die(mysql_error()));
}
connect_to_mysqli.php 文件如下所示:
<?php
//msqli connection
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'xy';
$dblink = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname)
or die(mysql_error());
mysqli_set_charset($dblink, 'utf8');
?>
最佳答案
您可以通过调用 func 将页面重定向到自身。 header()
像这样:
if(isset($_POST['submit_new item'])) {
include "./shortscript/connect_to_mysqli.php";
$brand = test_input($dblink, $_POST['brand']);
$model = test_input($dblink, $_POST['model']);
$category = test_input($dblink, $_POST['category']);
if($sqlAddCamera =
mysqli_query($dblink, "INSERT INTO items (brand, model, "
. "category) VALUES"
. "('$brand', '$model', '$category')")
or die(mysql_error()));
header("location:./filename.php");
}
- 如果您不想使用 AJAX。
关于php - 根据同一页面上的另一个表单刷新 mysql 的下拉输入字段,该表单使用 PHP 将新项目添加到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403102/