JQM&;PHP-如何将List项变量传递到另一个页面


Student Progress card Application with JQM & PHP - How to pass a List item variable to another page?

我计划使用jQuery Mobile和PHP开发一个学生进度卡应用程序,MySQL数据库作为后端。这主要用于教师在数据库中记录他们修改过的试卷的分数。

我在studentlist.php中有一份学生名单,在scoresheet.php中有一张包含各种科目分数的成绩表(如下所示)

学生列表从MySQL数据库中提取到studentlist.php 中

点击一个列表项(比如"Student1"),您将进入记分表.php。

scoresheet.php中的所有条目都需要保存在Student 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>       

现在,我将使用scoresheet.php中的变量"id",使用MySQL查询更新表中的记录。

会话数据还可以存储更复杂的数据类型,如多维数组。你可以做一些类似的事情:

$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'];

希望能有所帮助。

如果我理解您的问题,您有被分配会话Id的用户。您希望让php脚本文件在进行更新时接收Scoresheet更新,以保留会话Id信息。

处理它的一个简单方法是将会话id值放入表单操作url中。

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

但是,如果您使用POST方法,您可能希望做一些更优雅的事情,比如将会话id放置在隐藏的输入中。

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

看看这个例子,也许它会有所帮助——http://jsfiddle.net/shanabus/CbkpH/

不过,这一切似乎有点多余,因为服务器应该管理SESSION变量,而不必将它们传递到页面并返回。如果你正在寻找一些基本的PHP会话示例,你可以从这里开始。基本上,您必须根据studenlist.php文件的初始请求启动会话,然后确保在使用scoresheet.php上的值之前启动会话。