Я работаю над своим семестровым проектом и хочу передать переменную «значение» на следующей странице (order.php). Это значение, полученное из раскрывающегося списка, основанного на другом раскрывающемся списке, заполненном базой данных. Я подтвердил, что значение сохранено, но не могу получить его на следующей странице.
Я попробовал localstorage (обращается в NULL), переменные сеанса (неопределенный индекс «значение») и поместил его в URL-адрес, но, похоже, ничего не работает, и это очень расстраивает. Может кто-нибудь, пожалуйста, помогите мне с примером? Спасибо
session_start();
$conn = new mysqli("localhost", "root", "", "restaurant_ordering");
mysqli_set_charset($conn,"utf8mb4");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "select * from sector ";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()){
$categories[] = array("id" => $row['id'], "val" => $row['name']);
}
$sql = "SELECT * FROM booth";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()){
$subcats[$row['sector_id']][] = array("id" => $row['id'], "val" => $row['name']);
}
$jsonCats = json_encode($categories);
$jsonSubCats = json_encode($subcats);
?>
<!doctype html>
<html>
<head>
<script type='text/javascript'>
<?php
echo "var categories = $jsonCats; \n";
echo "var subcats = $jsonSubCats; \n";
?>
function loadCategories(){
var select = document.getElementById("categoriesSelect");
select.onchange = updateSubCats;
for(var i = 0; i < categories.length; i++){
select.options[i] = new Option(categories[i].val,categories[i].id);
}
}
function updateSubCats(){
var catSelect = this;
var catid = this.value;
var subcatSelect = document.getElementById("subcatsSelect");
subcatSelect.options.length = 0;
for(var i = 0; i < subcats[catid].length; i++){
subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id);
}
}
function handleSelectChange(event) {
var selectElement = event.target;
var value = selectElement.value;
}
</script>
<meta charset = "utf-8">
<title>New Order</title>
<link rel = "stylesheet" href = "server.css" />
</head>
<body onload='loadCategories()'>
<p><a href = "server.html"style = "color:#ffcc00">Home</a>
| <a href = "../login.html"style = "color:#ffcc00">Logout</a></p>
<h2>New Order</h2>
<strong>Sector:</strong>
<form name = "form" method = "post" action = "order.php" >
<select id='categoriesSelect'>
</select>
<select id='subcatsSelect' onchange = "handleSelectChange(event)">
</select>
<input type = "hidden" name = "new" value = "1" />
<input type = "hidden" name = "select" id = "total" value = "">
</div>
</div>
<div id = "button">
<p><input name = "submit" type = "submit" value = "Submit" onclick= </p>
</div>
</form>
</body>
</html>```
хорошо, если я понял, что вы хотите получить значение с этой первой php-страницы и перейти на другую php-страницу. так что просто сделайте это в первом php делать
$_SESSION['mything'] = $value_that_want_pass;
на второй странице php делать
сеанс_старт();
эхо $_SESSION['mything'];
echo "<script> var mything = ".$_SESSION['mything'].";</script>";
Значения формы в отправленной форме будут доступны в переменной $_POST
в «order.php». Найдите значения, используя HTML-атрибут «имя» ввода формы, для которого вы хотите получить значение. Поэтому, если вам нужно значение скрытого «нового» элемента формы, получите значение в «order.php», используя $_POST['new']
.
Я забыл упомянуть, что это потому, что ваша форма имеет 'method = "post"', что означает, что значения формы будут храниться в переменной php $_POST
.
Я могу сделать это с моими переменными html/php, но не с той, которая сгенерирована из JS/, в частности, я ищу «var value = selectElement.value;»
Я понял. Мне пришлось использовать имя в выборе. До сих пор у меня был только id, и я этого не замечал. Спасибо большое. Это стало намного сложнее в моей куче за последние несколько часов.
Я хочу передать значение для JS 'var value = selectElement.value;' Я не могу найти, как сохранить его в сеансе (если это возможно)