В выпадающем списке поиска должна быть html-форма с кнопкой отправки - PullRequest
2 голосов
/ 22 мая 2019

У меня есть этот выпадающий список, который показывает название различных конференций.Я могу выбрать определенную конференцию, но когда я выбираю конференцию, я хочу иметь возможность нажать кнопку отправки, чтобы получить переменную для выбранной конференции.

Я новичок в базах данных,но я пытался добавить форму, но я не могу заставить ее работать внутри кода PHP.База данных подключается и показывает все конференции просто отлично, я просто не могу понять, как получить переменную, равную выбранной опции.Форма отправляется, но я не получаю значения.Я просмотрел всю сеть и ничего не нашел.

.error {
  color: #FF0000;
}
<!DOCTYPE HTML>  
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css" />
</head>
<body>  
<form action="" name="selection" method="post">
<select project="ConferenceList" id="ConferenceList" name="ConferenceList">

<input type="submit" name="submit" id="submit" value="Submit" />
</form>

<?php
//Declare variables
$db_host = "";
$db_username = "";
$db_pass = "";
$db_name = "";
//$db_table = "";
//Connect to phpMyAdmin
$con=mysqli_connect("$db_host","$db_username","$db_pass","$db_name");

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_select_db($con,"$db_name") or die ("No database");

$result=mysqli_query($con,"select * From conferenceList");

echo "<select id='searchddl'>";
echo "<option> -- Search Conference Name -- </option>";
while($row=mysqli_fetch_array($result))
{
    echo "<option>$row[name]</option>";
}
echo "</select>";

//Close phpMyAdmin
mysqli_close($con);
?>


<script>
    $( "#searchddl" ).chosen()
</script>


<?php
echo $db_table;
?>

</body>
</html>

1 Ответ

1 голос
/ 23 мая 2019

Вы не указали атрибут value в вашем <option>, поэтому в $db_table ничего не передается, когда формы получаются. Вместо этого сделайте как ниже:

  <?php
    //Declare variables
    $db_host = "";
    $db_username = "";
    $db_pass = "";
    $db_name = "";
    //$db_table = "";
    //Connect to phpMyAdmin
    $con=mysqli_connect("$db_host","$db_username","$db_pass","$db_name");

    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    mysqli_select_db($con,"$db_name") or die ("No database");


    ?>

    <form action="" name="selection" method="post">
    <select project="ConferenceList" id="ConferenceList" name="ConferenceList">
    <?php 
    $result=mysqli_query($con,"select * From conferenceList");
    echo "<option> -- Search Conference Name -- </option>";
    while($row=mysqli_fetch_array($result))
    {
      //when form will get submitted whatever will be in value get passed
        echo "<option value='.$row[name].'>$row[name]</option>";
    }
    echo "</select>";

    //Close phpMyAdmin
    mysqli_close($con); ?>

    <input type="submit" name="submit" id="submit" value="Submit" />
    </form>

     <?php
        $db_table = "";
     //checking if form is submit 
        if (isset($_POST["submit"])) {
            $db_table = $_POST["ConferenceList"];//will give you value of option selected
         echo $db_table;//printing value 
        }
      ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...