Я использую данные $ _GET для отправки данных по страницам, и он работает нормально. У меня на одной странице есть новости. Каждая новостная статья имеет свой собственный идентификатор (и эта страница работает отлично). Я могу нажать на кнопку добавить меня рядом с каждым событием, чтобы добавить себя в качестве добровольца для организации барбекю для этого мероприятия. Однако теперь я пытаюсь нажать кнопку добавления, которая может добавить других пользователей в барбекю.Получить данные не будут вставлены
Я проверил, что данные $ _GET возвращают что-либо на загрузку страницы, и это происходит, однако значения теряются, когда я нажимаю кнопку submit. Так что, когда я проверить, если он возвращает что-нибудь внутри Исеть ($ _ POST [ 'userselect']), значения теряются:
Вот мой код:
$rosterID = $_GET["rosterid"];
$eventID = $_GET["eventid"];
//if i check to see if they gets work here, they do.
if (hasRole2($connection, "Admin") || hasRole2($connection, "Moderator") || hasRole2($connection, "BBQ Moderator")){
$usernames[] = array();
if ($stmt = $connection->prepare("SELECT id, uid from people")){
$stmt->execute();
$stmt->bind_result($id, $username);
$stmt->store_result();
$form = new jqmForm();
$form->method('post');
$sel = $form->add(new jqmSelect('userselect','userselect','<p align="center">Select User:</p>'), true);
while ($stmt->fetch()){
$usernames[] = array('uid' => $username, 'id' => $id);
$optName = $username;
$optValue = $id;
$sel->add(new jqmOption($optName, $optValue, false));
$sel->attribute('data-native-menu', 'false');
}
$stmt->close();
$form->add(new jqmInput('submit', 'submit', 'submit', 'submit', '', 'b', true));
}
if (isset($_POST["userselect"])){
//if i check to see if the gets work here, they don't.
$personID = $_POST["userselect"];
if (rostered($connection, $personID, $rosterID, $eventID)){
$personID = $_POST["userselect"];
$p->addContent("<p align=center><font color = red>You have already rostered for this event</font></p>");
$login = $p->addContent("<font color=brown size=4><a href = news.php rel=external> Go back </a></font>");
$login->attribute('align', 'center');
}
else{
$search = "INSERT INTO RosterPeopleEvent (roster_id, person_id, news_id) VALUES (?, ?, ?)";
if (!$roster = $connection->prepare($search)){
$p->addContent("Inserting into RosterPeopleEvent Prepare failed: (" . $connection->errno . ") " . $connection->error);
}
else{
$roster->bind_param("iii", $_GET["rosterid"], $personID, $_GET["eventid"]);
$roster->execute();
}
}
}
}
я не понимаю. Переменные имеют значения в верхней части скрипта, но 20 строк позже они этого не делают? – Barmar
yep. Часть isset работает только после нажатия кнопки отправки. Таким образом, после кнопки отправки переменные GET теряются. –
Но у них были значения, прежде чем вы делали часть 'isset' в том же вызове скрипта, правильно? Или эти два разных вызова? – Barmar