0

私は ajax 関数 makerequest(serverPage, objID) を持つ php ページを持っています。それは正常に動作し、3 つのリンクも正常に動作します。私のコンテンツは<div id=pageId>. このページの 3 番目のページには、変更イベントで mysql によって設定されたドロップダウン リストがあります。このページでは、すべてのオプションに多くの行があるため、データがphpページネーションクラスによって複数のページに表示されることを決定する必要がありますが、それも正常に機能しますが、次のページをクリックすると、ページをリロードして取得するためにすべてのデータが失われますドロップダウン リストのデフォルト値。

コード コンテンツの一部を次に示します。

<div id="menu">
    <!-- <a href="?id=AllIndiaengineringCollege" What part we want to link to onClick="makerequest('page.php?id=AllIndiaengineringCollege', 'content'); return false;" For AJAX - Load page into the div>AllIndiaengineringCollege</a>-->
    <a href="?id=AllIndiaengineringCollege" onClick="makerequest('id=AllIndiaengineringCollege', 'content'); return false;" style="text-decoration:none;color: #3E5AAB" >All India Engineering College</a>
    <a href="?id=Deemed" onClick="makerequest('page.php?id=Deemed', 'content'); return false;" style="text-decoration:none;color: #3E5AAB">Deemed Universities</a>
    <a href="?id=state" onClick="makerequest('id=state', 'content'); return false;" style="text-decoration:none;color: #3E5AAB">State Engineering College</a>
</div>

</font></div>
<div id='content'style="text-align:left;width:897px; height:auto; background-color:#99CCFF;padding:1px">
    <?PHP
    if (isset($_GET['id'])) {
        $pageId = $_GET['id'];
        if ($pageId == 'AllIndiaengineringCollege') {
            include("/pagination/index.php");
        }
        if ($pageId == 'Deemed') {
            include("/pagination/state.php");
        }
        if ($pageId == 'state') {
            include("/pagination/state.php");
        }
    }
    ?>
</div>

それは正常に動作します私の3番目のページは

<?php
$result = mysql_query("SELECT Id,state FROM state");
echo "<select name=State id='Id' class='select' onchange='showUser(this.value)'>";
while ($nt = mysql_fetch_array($result)) {
    echo ('<option value="' . $nt['Id'] . '" if($State===' . $nt['Id'] . ') echo $sel; >' . $nt['state'] . '</option>');
}
echo "</select>";
?> 
</div>
        <div id="state"><b><center>xxxxxxxx.</center></b>

showUser関数はこんな感じ

function showUser(str) {
    if (str == "") {
        document.getElementById("state").innerHTML = "";
        return;
    }
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("state").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "pagination/statelist.php?state=" + str, false);
    xmlhttp.send();
}

ページネーションのコードは次のようになります。

<?php
include('db.php');
include('function.php');

$q          = $_GET["state"];
$page       = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit      = 2;
$statement  = "college where State= '" . $q . "'";
$url        = "BTech.php?id=state&State=" . $q . "&";
$startpoint = ($page * $limit) - $limit;
?>
4

1 に答える 1

0

ここを直せば大丈夫だと思います

while ($nt = mysql_fetch_array($result)) {
    echo ('<option value="' . $nt['Id'] . '" if($State===' . $nt['Id'] . ') echo $sel; >' . $nt['state'] . '</option>');
}

このようなものとして、

while ($nt = mysql_fetch_array($result)) {
    echo "<option value=\"{$nt['Id']}\"".(($State===$nt['Id'])?'selected="selected"':"") .">{$nt['state']}</option>";
}

そのように条件を評価することはできません。ネストされたものも機能しませんecho

この前のSOの質問を見てください

于 2012-08-13T05:10:50.823 に答える