2013-11-08 3 views
0

Я использую данные $ _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(); 
      } 
     } 
    } 
} 
+1

я не понимаю. Переменные имеют значения в верхней части скрипта, но 20 строк позже они этого не делают? – Barmar

+0

yep. Часть isset работает только после нажатия кнопки отправки. Таким образом, после кнопки отправки переменные GET теряются. –

+0

Но у них были значения, прежде чем вы делали часть 'isset' в том же вызове скрипта, правильно? Или эти два разных вызова? – Barmar

ответ

0

Просто добавил:

$form->action("url.php?rosterid=$rosterID&eventid=$eventID"); 

Это сработало.

Смежные вопросы