Приложение Student Progress Card с JQM & PHP - Как передать переменную элемента List на другую страницу? - PullRequest
1 голос
/ 02 февраля 2012

Я планирую разработать приложение для студенческого прогресса, используя jQuery Mobile и PHP с базой данных MySQL в качестве серверной части. Это в основном используется учителями для записи оценок экзаменационных работ, которые они исправили в базе данных.

У меня есть список студентов в studentlist.php и таблица результатов с различными записями предметных отметок в Scoresheet.php (показано ниже)

Список студентов извлекается из базы данных MySQL в studentlist.php

Нажав на элемент списка (скажем, «Student1»), вы попадете на scoresheet.php.

Все записи, сделанные в Scoresheet.php должны быть сохранены в базе данных для ученика 1.

Мне было интересно, могу ли я создать значение для каждого элемента списка и передать эту переменную в Scoresheet.php, используя сеансы.

Может кто-нибудь помочь мне с простым примером?

Список студентов будет выглядеть примерно так: http://jquerymobile.com/test/docs/lists/lists-divider.html

Scoresheet.php будет выглядеть примерно так:

Список оценочных карт студентов

<body>

<div data-role="page" id="page">
    <div data-role="header">
     <a href="" rel="external" data-ajax="false" data-role="button" data-icon="home" data-theme="b"> Dashboard </a>
    <h4> Contractor's List </h4>
    </div>

    <div data-role="content">       

        <div data-role="fieldcontain">

          <ul data-role="listview" data-inset="true">

            <li>    <label for="slider-2">Subject1</label>
                    <input type="range" name="subject1" id="subject1" value="0" min="1" max="10"  />
            </li>   
            <li>    <label for="slider-2">Subject2</label>
                    <input type="range" name="subject2" id="subject1" value="0" min="1" max="10"  />
            </li>  
           </ul> 
        </div>

    </div>
    <div data-role="footer">
        <h6>2012 &copy </h6>
    </div>
</div>

</body>

Пример того, что я сделал, передав переменные через URL:

studentlist.php:

<?Php
$sql= 'SELECT student_id, student_name FROM students';
    $result=mysql_query($sql);

        $num=mysql_num_rows($result);
    echo $num;

    ?>

    <div data-role="content">       

          <div data-role="fieldcontain" data-theme="b">
            <ul data-role="listview" data-inset="true">
            <li data-role="list-divider"> List of Contractors </li>
            <?php
                $i=0;
                while ($i < $num) {

                $f1=mysql_result($result,$i,"student_id");
                $f2=mysql_result($result,$i,"student_name");

            ?>

                <li>
                <a href="scoresheet.php?id= <?Php echo $f1; ?> ">
                <h3> <?Php echo $f2;?> </h3>               
                </a>
                </li>
            <?php
                $i++;
                }
            ?>            
          </div>       

Теперь я буду использовать переменную 'id' в Scoresheet.php, чтобы обновить запись в таблице, используя запрос MySQL.

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

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

Один простой способ справиться с этим - поместить значение идентификатора сеанса в URL-адрес действия формы.

<form action="scoresheet.php?sessionId=<?php echo $_SESSION['sessionId']; ?>" id="formScoresheet">

Однако, если вы используете метод POST, вы можете захотеть сделать что-то более элегантное, например, поместить идентификатор сеанса в скрытый ввод.

<input type="hidden" id="sessionId" name="sessionId" value="<?php echo $_SESSION['sessionId']; ?>" />

Посмотрите этот пример, возможно, онпоможет - http://jsfiddle.net/shanabus/CbkpH/

Это все кажется немного избыточным, потому что ваш сервер должен управлять переменными SESSION без необходимости передавать их на страницу и обратно.Если вы ищете несколько простых примеров PHP Session, вы можете начать здесь .По сути, вы должны начать сеанс по первоначальному запросу для файла studenlist.php, затем обязательно запустите сеанс перед использованием значений в scoresheet.php.

1 голос
/ 02 февраля 2012

Данные сеанса также могут хранить более сложные типы данных, такие как многомерные массивы. Вы можете сделать что-то вроде:

$student_id = $_POST['student_id'];
$_SESSION['student_data'][$student_id]['subject_1'] = $_POST['subject_1'];
$_SESSION['student_data'][$student_id]['subject_2'] = $_POST['subject_2'];

Надеюсь, это поможет.

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