2015-10-23 2 views
-3

Я собираюсь вызвать одну страницу PHP (ModifyUsers.php) из другого (RumpUserAdministration.php). Я пытаюсь вызвать его как отдельную страницу, а не как подраздел страницы администрирования пользователей, и передать значение userID, используя POST от RumpUserAdministration.php до ModifyUsers.php.Пытаться вызвать другую страницу PHP Используя POST

Я добавил alert заявление, которые показывают, что userID хранятся в hidden-id-field непосредственно перед созывом страницы пользователей могут изменять, и, таким образом, доступный для постинга, но он не транспортируется на страницу Пользователей Modify.

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

Мой вопрос заключается в следующем: как я могу вызвать страницу Модифицировать пользователей с помощью POST, чтобы я мог передавать свое значение с помощью POST?

Я могу использовать как переменные GET, так и SESSION, но этот конкретный сценарий сосредоточен на переменных POST - GET и SESSION, которые не должны использоваться.

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

Ниже перечислены файлы, которые я использовал для этой проблемы.

RumpUserAdministration.php

<!DOCTYPE html> 

<html> 
    <head> 
     <meta name = "viewport" 
       content = "width=device-width, initial-scale=1.0" 
     > 

     <meta charset = "utf-8"> 

     <link href = "CSS/RumpIntranetProject.css" 
       rel = "stylesheet" 
       type = "text/css" 
     > 
    </head> 

    <body> 
<?php 
     echo "<script>alert(\"" . $_SERVER[ "REQUEST_METHOD" ] . "\")</script>"; 
?> 
     <form id  = "entire-page" 
       action = "RumpUserAdministration.php" 
       method = "post" 
     > 
      <div id = "user-name-list-section"> 
       <div id = "user-name-list"> 
        <div id  = "ID15" 
         class = "list-item row" 
         name = "ID15" 
         onclick = "userNameListItemClicked('15')" 
        > 
         SAMPLE USER 001 
        </div> 

        <div id  = "ID16" 
         class = "list-item row" 
         name = "ID16" 
         onclick = "userNameListItemClicked('16')" 
        > 
         SAMPLE USER 002 
        </div> 
       </div> 
      </div> 

      <input id  = "user-administration-button-delete" 
        name = "delete-submit" 
        onclick = "loadDeleteUsers()" 
        type = "submit" 
        value = "Delete" 
      > 

      <input id  = "user-administration-button-modify" 
        name = "modify-submit" 
        onclick = "loadModifyUsers()" 
        type = "submit" 
        value = "Modify" 
      > 

      <input id = 'hidden-id-field' 
        name = 'userID' 
        type = 'hidden' 
        value = '' 
      > 
     </form> 

     <?php 
      if ($_SERVER[ "REQUEST_METHOD" ] == "POST") 
      { 
       if (isset($_POST[ 'modify-submit' ])) 
       { 
        echo "<script>document.getElementById('hidden-id-field').value = \"" . $_POST[ 'userID' ] . "\"</script>"; 
        echo "<script>alert(\"hidden-id-field (userID) : \" + document.getElementById('hidden-id-field').value)</script>"; 
        echo "<script>alert(\"" . $_SERVER[ "REQUEST_METHOD" ] . "\")</script>"; 
        echo '<script>window.location = "ModifyUsers.php"</script>'; 
       } 
       else 
       { 
        echo "<script>alert('Unexpected Administration POST encountered.')</script>"; 
       } 
      } 
     ?> 

     <script> 
      var existingSelection = null; 

      function loadModifyUsers() 
      { 
       document.getElementById('hidden-id-field').value = existingSelection; 
       alert("Presubmit"); 
       document.getElementById('entire-page').submit; 
      } 

      function userNameListItemClicked(userID) 
      { 
       existingSelection = 'ID' + userID; 

       document.getElementById("user-administration-button-modify").style.cursor = "pointer"; 
       document.getElementById("user-administration-button-modify").disabled = false; 
      } 
     </script> 
    </body> 
</html> 

ModifyUsers.php

<!DOCTYPE html> 

<html> 
    <head> 
     <meta name = "viewport" 
       content = "width=device-width, initial-scale=1.0" 
     > 

     <meta charset = "utf-8"> 

     <link href = "CSS/RumpIntranetProject.css" 
       rel = "stylesheet" 
       type = "text/css" 
     > 
    </head> 

    <body> 
<?php 
     echo "<script>alert('In further')</script>"; 
     echo "<script>alert(\"hidden-id-field (userID) : \" + document.getElementById('hidden-id-field').value)</script>"; 
     echo "<script>alert(\"userID : \" + \"" . $_POST[ 'userID' ] . "\")</script>"; 
?> 
    </body> 
</html> 

RumpIntranetProject.css

html, 
* 
{ 
    border  : 0; 
    box-sizing : border-box; 
    margin  : 0; 
    padding  : 0; 
} 

.list-item 
{ 
    display : block; 
} 

.list-item:hover 
{ 
    background-color : #00ffff; 
} 

.row:after 
{ 
    clear : both; 
    content : ""; 
    display : block; 
} 

#user-name-list 
{ 
    border  : 1px; 
    border-color : black; 
    border-style : solid; 
    overflow-y : scroll; 
    width  : 300px; 
} 

Я не уверен, что если эта проблема из-за пропущенного include, опечатка, неправильная команда или в зависимости от того, что я не могу сказать, где лежит ошибка. Как таковой в интересах полноты я должен включать полное содержание каждого минимализированного файла. Я работаю над своим определением «минимальный». :)

+1

Два куска совета: (1) упростить эту стену коды и производит (http://stackoverflow.com/help/mcve), и (2) [Minimal, полный и проверяемый пример.] спасите себя от боли, никогда не используя пробелы в именах файлов PHP. –

+0

Пробелы удалены - без эффекта. Больше следовать. – toonice

+0

Спасибо за ссылку, Эд Коттрелл. Я искал этот документ. – toonice

ответ

2

Похоже, вы изменить страницы с помощью JavaScript:

echo '<script>window.location = "ModifyUsers.php"</script>'; 

Что вы здесь делаете является загрузки ModifyUsers.php, но [так как это GET] ничто не может быть передан с помощью POST ,

Вместо этого вы должны изменить форму action формы, чтобы перейти к ModifyUsers.php: таким образом ваши данные POST будут переданы на правильную страницу.

+0

Благодарим вас за ответ. Это нормально, если Modify Users - единственная страница, вызываемая из одной кнопки. Но на моей странице «User Useristation» представлены другие параметры для пользователя, например, они также позволяют вызвать страницу «Удалить пользователей». Как вызвать страницу «Изменить пользователей» только тогда, когда они нажимают кнопку «Изменить» (и передают значение с помощью POST)? Обратите внимание: я обновил свой вопрос, чтобы отразить этот аспект проблемы. – toonice

0

Это один ответ, который я только что разработал. Если есть другие способы ответа на вопрос, пожалуйста, разместите их.

Я разместил каждую кнопку Submit в своей собственной форме, включая скрытое поле в каждой форме.

Каждая из этих кнопок успешно вызывает свою форму, а не что-то еще.

Ниже приведена модифицированная версия RumpUserAdministration.php, которую я использовал (ModifyUsers.php и RumpIntranetProject.css не изменяются из вопроса).

<!DOCTYPE html> 

<html> 
    <head> 
     <meta name = "viewport" 
       content = "width=device-width, initial-scale=1.0" 
     > 

     <meta charset = "utf-8"> 

     <link href = "CSS/RumpIntranetProject.css" 
       rel = "stylesheet" 
       type = "text/css" 
     > 
    </head> 

    <body> 
<?php 
     echo "<script>alert(\"" . $_SERVER[ "REQUEST_METHOD" ] . "\")</script>"; 
?> 
     <div id = "user-name-list-section"> 
      <div id = "user-name-list"> 
       <div id  = "ID15" 
        class = "list-item row" 
        name = "ID15" 
        onclick = "userNameListItemClicked('15')" 
       > 
        SAMPLE USER 001 
       </div> 

       <div id  = "ID16" 
        class = "list-item row" 
        name = "ID16" 
        onclick = "userNameListItemClicked('16')" 
       > 
        SAMPLE USER 002 
       </div> 
      </div> 
     </div> 

     <form id  = "form-delete" 
       action = "Index.php" 
       method = "post" 
     > 
      <input id = 'hidden-id-field-delete' 
        name = 'userID' 
        type = 'hidden' 
        value = '' 
      > 
      <input id  = "user-administration-button-delete" 
        name = "delete-submit" 
        onclick = "loadDeleteUsers()" 
        type = "submit" 
        value = "Delete" 
      > 
     </form> 

     <form id  = "form-modify" 
       action = "ModifyUsers.php" 
       method = "post" 
     > 
      <input id = 'hidden-id-field-modify' 
        name = 'userID' 
        type = 'hidden' 
        value = '' 
      > 

      <input id  = "user-administration-button-modify" 
        name = "modify-submit" 
        onclick = "loadModifyUsers()" 
        type = "submit" 
        value = "Modify" 
      > 
     </form> 

     <script> 
      var existingSelection = null; 

      function loadDeleteUsers() 
      { 
       document.getElementById('hidden-id-field-delete').value = existingSelection; 
      } 

      function loadModifyUsers() 
      { 
       document.getElementById('hidden-id-field-modify').value = existingSelection; 
      } 

      function userNameListItemClicked(userID) 
      { 
       existingSelection = 'ID' + userID; 

       document.getElementById("user-administration-button-modify").style.cursor = "pointer"; 
       document.getElementById("user-administration-button-modify").disabled = false; 
      } 
     </script> 
    </body> 
</html> 
Смежные вопросы