php - 根据同一页面上的另一个表单刷新 mysql 的下拉输入字段,该表单使用 PHP 将新项目添加到 mysql

标签 php html mysql ajax

我正在开发一个使用 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/

相关文章:

php - Amazon SES - 通过 PHP sdk 发送 HTML 邮件

php - 如何在 PHP 中通过 while 循环检索数据

php opencart 2.1.0.1 mysql查询错误: mysql_num_fields() expects parameter 1 to be resource object given in

php - 插入时出错

mysql - 查询具有belongs_to/has_many关系的两个表

php - 通过 PHP 函数截断 MySQL 表不起作用

php - Mysql数据库是否关闭

html - Bootstrap css 水平对齐元素无法正常工作

HTML/CSS : increase border size without affect the height

javascript - 位置为 :absolute 的屏幕的 CSS 百分比