Раскрывающийся список поиска не может получить переменную, равную выбранной опции - PullRequest
0 голосов
/ 22 мая 2019

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

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

<!DOCTYPE HTML>  
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>  

<?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 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" />

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

</body>
</html>

Я ожидал, что переменная будет равна той же самой, что и выбранная. Поэтому я хочу, чтобы моя переменная была равна 1006 * введите описание изображения здесь

1 Ответ

0 голосов
/ 22 мая 2019
<script>
    $( "#searchddl" ).chosen().change(function() {  // execute query every time select option changes
    var val = $( "#searchddl" ).chosen().val();  // get value from selected option
    $.ajax({
        url: "myphpfile.php", // call external PHP file for query execution
        type: "get", 
        data: { 
            myselectvalue: val // passes value as GET parameter (?=myselectvalue=val) 
        },
        success: function(response) {
            tmp = response // store variable from PHP output
            // do Something

        },
        error: function(xhr) {
             // do Something else
        }
    });
</script>

В вашем отдельном PHP-файле вы можете получить значение из переменной get:

if (isset($_GET['myselectvalue']) && strlen($_GET['myselectvalue']) { // make sure it's populated

    $valueFromForm = $_GET['myselectvalue'];

    // Execute queries, echo results, etc.

}

Я использовал GET в этом решении, но POST также работал бы.Вам просто нужно изменить type: "get" на type: "post" в вызове ajax и $_GET[] на $_POST[] в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...