0

こんにちは、4 ページ (3 x php、1 x js) で構成された以下のコードがあります。基本原則は非常に単純です。

test17a.php: n 個のラジオ ボタンから選択 - onChange イベントを発生させて、test17b.php の内容を読み込みます。これには、選択したラジオ ボタンの ID から派生した MySQL クエリが含まれます。

test17b.php: 1 つの項目を表示し、クリックすると test17c.php をロードします これには、test17a.php と test17b.php の結果から派生した MySQL クエリが含まれます

test17c.php: n 個のアイテムを表示し、それぞれがクリック可能です。クリックすると、test17a.php、test17b.php、および test17c.php の結果から派生した MySQL クエリが実行されます。

test17d.php は、上記のクエリの結果を表示します。

問題は、test17c.php の値がundefinedとして返されることです。これは、値が読み込まれる前に読み込まれる JavaScript と関係があると思います。しかし、値が正しく渡されるようにこれを変更する方法がわかりません。

誰かが私を正しい方向に向けることができれば、本当に感謝しています。

##test17.js##
//fired from onchange event on test17a.php
function findB(GroupVal)
    {
        $("#B").load("test17b.php?GroupVal="+GroupVal).css('display','block');
    }

//fired from onClick event on test17b.php       
function findC(GroupVal,MasterID)
    {
        $(".C").load("test17c.php?GroupVal="+GroupVal+"&MasterID="+MasterID).css('display','block');
    }


//fired when clicking on one of the items on test17c.php (used to show which item was clicked on   
$(document).on('click', 'p.C2', function(evt) 
    {
        var $p = $(evt.currentTarget),
            GroupVal = $p.data('GroupVal'),
            MasterID = $p.data('MasterID'),
            SlaveID = $p.data('SlaveID'),
            $div = $p.next();
        console.log('3GroupVal='+GroupVal+' | 3MasterID='+MasterID+' | 3SlaveID='+SlaveID); 
        findE(GroupVal, MasterID, SlaveID, $div);
    }
);

function findE(GroupVal, MasterID, SlaveID, $div)
{
    $div.load("test17d.php?GroupVal="+GroupVal+"&MasterID="+MasterID+"&SlaveID="+SlaveID).css('display','block');
    console.log('4GroupVal='+GroupVal+' | 4MasterID='+MasterID+' | 4SlaveID='+SlaveID);
}

_

##test17a.php##
<head>
<script language="JavaScript" src="../Generic/JAVASCRIPT/jquery-min.js" type="text/javascript"></script>
<script language="JavaScript" src="test17.js" type="text/javascript"></script>
</head>
<Body>
<label for="GROUP1">GROUP1</label>
<INPUT class="groupSelectButtons" TYPE="radio" NAME="GroupSelect" VALUE="1" id="GROUP1" onChange="findB(this.value)"/>

<label for="GROUP2">GROUP1</label>
<INPUT class="groupSelectButtons" TYPE="radio" NAME="GroupSelect" VALUE="2" id="GROUP2" onChange="findB(this.value)"/>
<div id="B">
</div>
</Body>

##test.17b.php##
<?php
$GroupVal = $_GET['GroupVal'];
$MasterID = $GroupVal*2;

print "<p id=\"B2\" onClick=\"findC('$GroupVal','$MasterID')\"> GroupVal = $GroupVal | MasterID = $MasterID</p>";
print "<div class=\"C\"></div></br>";
?>

 ##test.17c.php##
<?php
$GroupVal = $_GET['GroupVal'];
$MasterID = $_GET['MasterID'];
$SlaveID = $GroupVal*$MasterID;

print "<p class=\"C2\" data-GroupVal=\"$GroupVal\" data-MasterID=\"$MasterID\" data-SlaveID=\"$SlaveID\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID </p>";
print "<div class=\"D\"></div>";

$SlaveID++;

print "<p class=\"C2\" data-GroupVal=\"$GroupVal\" data-MasterID=\"$MasterID\" data-SlaveID=\"$SlaveID\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID </p>";
print "<div class=\"D\"></div>";

$SlaveID++;

print "<p class=\"C2\" data-GroupVal=\"$GroupVal\" data-MasterID=\"$MasterID\" data-SlaveID=\"$SlaveID\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID </p>";
print "<div class=\"D\"></div>";
?>

##test17d.php##
<?php
$GroupVal = $_GET['GroupVal'];
$MasterID = $_GET['MasterID'];
$SlaveID = $_GET['SlaveID'];
$SubSlaveID = $SlaveID+10;

print "<p class=\"D2\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID | SubSlaveID = $SubSlaveID</p>";
print "<div class=\"E\"></div>";

?>
4

2 に答える 2

0

私は答えを見つけました、そしてそれは少し奇妙です。私のコードには次のものがあります。

print "<p class=\"C2\" data-GroupVal=\"$GroupVal\" data-MasterID=\"$MasterID\" data-SlaveID=\"$SlaveID\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID </p>";

しかし、コンソールを使用して詳しく見てみると、次のように読み取られていることがわかりました。

print "<p class=\"C2\" data-groupval=\"$GroupVal\" data-masterid=\"$MasterID\" data-slaveid=\"$SlaveID\"> GroupVal = $GroupVal | MasterID = $MasterID | SlaveID = $SlaveID </p>";

つまり、すべての data-xxx コンポーネントが小文字に変換されていました。これは、Javascript が実行され、続いて $_GET['xxx'] が実行されると、変数がすべて「未定義」になることを意味していました。

コードでこれのすべてのインスタンスを小文字に変換すると、正常に実行されました。変。

于 2013-07-29T13:43:17.527 に答える