簡體   English   中英

使用php mysql錯誤從數據庫中選擇的值進入下拉選擇框選項

[英]selected value get from db into dropdown select box option using php mysql error

我需要從 db 中獲取選定的值到選擇框中。 請告訴我怎么做。 這是代碼。 注意:'options' 值取決於類別。

<?php 
  $sql = "select * from mine where username = '$user' ";
  $res = mysql_query($sql);
  while($list = mysql_fetch_assoc($res)){
    $category = $list['category'];
    $username = $list['username'];
    $options = $list['options'];
?>

<input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
<select name="course">
   <option value="0">Please Select Option</option>
   <option value="PHP">PHP</option>
   <option value="ASP">ASP</option>
</select>

<?php 
  }
?>

我認為您正在尋找以下代碼更改:

<select name="course">
<option value="0">Please Select Option</option>
<option value="PHP" <?php if($options=="PHP") echo 'selected="selected"'; ?> >PHP</option>
<option value="ASP" <?php if($options=="ASP") echo 'selected="selected"'; ?> >ASP</option>
</select>

我能想到的最簡單的方法如下:

<?php

$selection = array('PHP', 'ASP');
echo '<select>
      <option value="0">Please Select Option</option>';

foreach ($selection as $selection) {
    $selected = ($options == $selection) ? "selected" : "";
    echo '<option '.$selected.' value="'.$selection.'">'.$selection.'</option>';
}

echo '</select>';

代碼基本上將所有選項放在一個數組中,這些選項在 foreach 循環中被調用。 循環檢查您的 $options 變量是否與它所在的當前選擇匹配,如果匹配,則 $selected 將 = 選擇,如果不匹配,則將其設置為空白。 最后返回包含數組中選擇的選項標簽,如果該特定選擇等於您的 $options 變量,則將其設置為所選選項。

例如..下次請使用 mysqli() 因為 mysql() 已被棄用。

<?php
$select="select * from tbl_assign where id='".$_GET['uid']."'"; 
$q=mysql_query($select) or die($select);
$row=mysql_fetch_array($q);
?>

<select name="sclient" id="sclient" class="reginput"/>
<option value="">Select Client</option>
<?php $s="select * from tbl_new_user where type='client'";
$q=mysql_query($s) or die($s);
while($rw=mysql_fetch_array($q))
{ ?>
<option value="<?php echo $rw['login_name']; ?>"<?php if($row['clientname']==$rw['login_name']) echo 'selected="selected"'; ?>><?php echo $rw['login_name']; ?></option>
<?php } ?>
</select>

從下拉列表中選擇值。

<select class="form-control" name="category" id="sel1">
    <?php foreach($data as $key =>$value) { ?>                         
        <option value="<?php echo $data[$key]->name; ?>"<?php if($id_name[0]->p_name==$data[$key]->name) echo 'selected="selected"'; ?>><?php echo $data[$key]->name; ?></option>
    <?php } ?>
</select> 

最簡單的解決方案

它會在您的選項中添加額外的內容,但您的問題將得到解決。

<?php 
    if ($editing == Yes) {
        echo "<option value=\".$MyValue.\" SELECTED>".$MyValue."</option>";
    }
?>

最好的代碼和簡單

<select id="example-getting-started" multiple="multiple" name="category">

    <?php
    $query = "select * from mine";
    $results = mysql_query($query);

    while ($rows = mysql_fetch_assoc(@$results)){ 
    ?>
    <option value="<?php echo $rows['category'];?>"><?php echo $rows['category'];?></option>

    <?php
    } 
    ?>
</select>

你也可以這樣做......

<?php  $countryname = $all_meta_for_user['country']; ?>

<select id="mycountry"  name="country" class="user">

    <?php $myrows = $wpdb->get_results( "SELECT * FROM wp_countries order by country_name" );
    foreach($myrows as $rows){
        if( $countryname == $rows->id ){ 
            echo "<option selected = 'selected' value='".$rows->id."'>".$rows->country_name."</option>";
        } else{ 
            echo "<option value='".$rows->id."'>".$rows->country_name."</option>";
        }
    }
    ?>
</select>

使用 PDO

<?php
$username = "root";
$password = "";
$db = "db_name";

$dns = "mysql:host=localhost;dbname=$db;charset=utf8mb4";
$conn = new PDO($dns,$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "select * from mine where username = ? ";

$stmt1 = $conn->prepare($sql);
$stmt1->execute(array($_POST['user']));
$all = $stmt1->fetchAll(); ?>

<div class="controls">
    <select  data-rel="chosen"  name="degree_id" id="selectError">
        <?php 
        foreach($all as $nt) { 
            echo "<option value =$nt[id]>$nt[name]</option>";
        }
        ?>
    </select>
</div>

只需添加一個額外的隱藏選項並從數據庫中打印選定的值

<option value="<?php echo $options;?>" hidden><?php echo $options;?></option>
<option value="PHP">PHP</option>
<option value="ASP">ASP</option>

答案很簡單。 當您從下拉列表中傳遞值時。

就像其他一樣使用。

例如:

foreach($result as $row) {                      
   $GLOBALS['output'] .='<option value="'.$row["dropdownid"].'"'. 
   ($GLOBALS['passselectedvalueid']==$row["dropwdownid"] ? ' Selected' : '').' 
   >'.$row['valueetc'].'</option>';
}
<?php 
  $sql = "select * from mine where username = '$user' ";
  $res = mysql_query($sql);
  while($list = mysql_fetch_assoc($res)){
    $category = $list['category'];
    $username = $list['username'];
    $options = $list['options'];
?>

<input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
<select name="course">
<option value="0">Please Select Option</option>
<option value="PHP" <?php echo $options == 'PHP' ? 'selected' : ''; ?> >PHP</option>
<option value="ASP" <?php echo $options == 'ASP' ? 'selected' : ''; ?> >ASP</option>
</select>

<?php 
  }
?>

我正在使用eval() PHP 函數,如下所示:

我的PHP代碼:

$selOps1 = $selOps2 = $selOps3 = '';
eval('$selOps'. $dbRow["DBitem"] . ' = "selected";');

然后在我的選擇框中,我像這樣使用它:

<select>
   <option <?=$selOps1?> value="1">big</option>
   <option <?=$selOps2?> value="2">Middle</option>
   <option <?=$selOps3?> value="3">Small</option>
</select>
$option = $result['semester'];
<option >Select</option>
                    <option value="1st" <?php if($option == "1st") echo 'selected = "selected"'; ?>>1st</option>
                    <option value="2nd" <?php if($option == "2nd") echo 'selected = "selected"'; ?>>2nd</option>
                    <option value="3rd" <?php if($option == "3rd") echo 'selected = "selected"'; ?>>3rd</option>
                    <option value="4th" <?php if($option == "4th") echo 'selected = "selected"'; ?>>4th</option>
                    <option value="5th" <?php if($option == "5th") echo 'selected = "selected"'; ?>>5th</option>
                    <option value="6th" <?php if($option == "6th") echo 'selected = "selected"'; ?>>6th</option>
                    <option value="7th" <?php if($option == "7th") echo 'selected = "selected"'; ?>>7th</option>
                    <option value="8th" <?php if($option == "8th") echo 'selected = "selected"'; ?>>8th</option>
                </select>

這可能對你有幫助。

?php 
$sql = "select * from mine where username = '$user' ";
$res = mysql_query($sql);
while($list = mysql_fetch_assoc($res))
{
$category = $list['category'];
$username = $list['username'];
$options = $list['options'];
?>
<input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
<select name="course">
<option value="0">Please Select Option</option>
// Assuming $list['options'] is a coma seperated options string 
$arr=explode(",",$list['options']);
<?php foreach ($arr as $value) { ?>
   <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
<?php } >
</select>

<?php 
}
?>

好的,首先我認為,您需要從數據庫中獲取一些數據並將其顯示在選擇框中作為選項,然后您需要將該選擇選項值保存到數據庫中。

  1. 首先你必須從數據庫中獲取值
function showAllData(){
    $connection = mysqli_connect('localhost', 'root', '', 'beva');
    $query = "SELECT * FROM users";
    $result = mysqli_query($connection, $query);

    if(!$result){
        die('Query Failed'. mysqli_error());
    }
    while($row = mysqli_fetch_assoc($result)){
        $id = $row['id'];
        echo $id;
        echo "<option name='$id'>$id</option>";
    } 
}
  1. 那么你必須在選擇選項上調用這個函數
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script>
</head>
<body>
<div class="container mt-3 mb-5">
    <div class="card">
        <form action="html.php" method="post">
            <input type="text" name="username" placeholder="Enter Username">
            <input type="password" name="password" placeholder="Enter Password">
            <select name="se"> <?php showAllData();?> </select>
            <input type="submit" name="submit">
        </form>
    </div>
</div>
</body>
</html>

在這里,您只需調用該函數。 確保您為選擇框輸入了一個名稱<select name="se">

  1. 那么你要做的就是將該值保存在數據庫中
if(isset($_POST['submit'])){
        $connection = mysqli_connect('localhost', 'root', '', 'beva');
        $username = $_POST['username'];
        $password = $_POST['password'];
        $id = $_POST['se'];
        echo $id;

        $query = "UPDATE users SET username = '$username', password = '$password' WHERE id = $id ";

        $result = mysqli_query($connection, $query);
        echo $query;
        if(!$result){
            echo $query;
            die("Query Failed" . mysqli_error($connection));
        }  
}
  1. 然后它會更新你的記錄,在這里你不必一一創建列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM