dongyue7796
2016-08-13 14:53
浏览 70
已采纳

JQuery Mobile PHP MySQL从第一页的第二页选择中检索数据

so I didn't know how to properly express it in the title but I'm gonna do it here. I have two pages, in the first one I added a listview with some items (each got value). What I want is when the user clicks on an item, he/she goes to the second page and it'd show him/her a listview (that retrieves MySQL data based on the value they selected). But my problem is when I click on an item in the first page, it shows me NOTHING in the second page.

I have tried this with several methods for several days, and it's getting frustrating now! I really need help with it. Much Appreciated.

Here is my first page code:

<?php
session_start();
include "partials/connectDb.php";

if (isset($_POST["goverVal"]))
{
    $_SESSION["goverVal"] = $_POST["goverVal"];
}
?>

<div data-role="page" id="homepage">
    <!-- HEADER INCLUDE -->
    <?php include "partials/header.php"; ?>
    <div data-role="main" class="ui-content" align="center">
        <h2>Select A Governorate</h2>
            <form action="index.php" method="POST">
                <ul data-role="listview" id="goverVal" name="goverVal">
                <?php
                    include "partials/connectDb.php";

                    $sql = "SELECT * FROM governorate_table;";
                    $run_query = mysqli_query($conn, $sql);

                    while ($row = mysqli_fetch_array($run_query))
                    {
                        $gId = $row['g_id'];
                        echo "<li data-value='{$gId}'><a href='area_page.php' class='ui-btn'>$gId - $row[name]</a></li>";
                    }
                ?>
                </ul>
            </form>
    </div>
    <!-- FOOTER INCLUDE -->
    <?php include "partials/footer.php"; ?>
</div>

=======================================================================

And this is my second page's code:

<?php
session_start();
include "partials/connectDb.php";

$goverChoice = $_SESSION["goverVal"];
?>

<div data-role="page" id="areaPage">
    <!-- HEADER INCLUDE -->
    <?php include "partials/header.php"; ?>
    <div data-role="main" class="ui-content" align="center">
        <h2>Select an Area</h2>
        <?php
            include "partials/connectDb.php";

            $q = "SELECT * FROM area_table WHERE governorate = '$goverChoice';";

            $run_sql = mysqli_query($conn, $q);

            echo "<ul data-role='listview'>";
            while ($row = mysqli_fetch_array($run_sql))
            {
                echo "<li><a href='#'>".$row['area_name']."</a></li>";
            }
            echo "</ul>";
        ?>
    </div>
    <!-- FOOTER INCLUDE -->
    <?php include "partials/footer.php"; ?>
</div>
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongtuo4723 2016-08-13 15:57
    已采纳

    Never mind. I just finally found an appropriate solution. Here is what I used if anyone ran into the same problem:

    In the first page:

    $(document).ready(function(){
        $('#goverVal').on("click", "li", function(){
           $.ajax("update_session.php",{method:"post", data:{val:$(this).attr("data-value")}}); 
        });
    });
    

    And this in a separate file:

    <?php
    //Another File
    session_start();
    if (isset($_POST["val"]))
    {
        $_SESSION["val"] = $_POST["val"];
    }
    ?>
    

    And this line in the second page where to show the data, at the top:

    $goverChoice = $_SESSION["val"];
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题