0

simplexml_load_file を使用してアクセスできる xml フィードがあり、その中のすべてのレコードにアクセスするたびに使用します。以下を使用して、個々のノードにアクセスすることもできます。

$xml->property[0]->propertyID;

私ができるようにしたいのは、各レコードを順番に個別に表示することです。つまり、ページの更新時に [0] から [1] に順番に移動しますが、その方法がわかりません。

私はただの愛好家なので、これが少し初心者の質問である場合はご容赦ください。

4

1 に答える 1

1

行き先を思い出せるように、どこかに何らかの状態を導入する必要があります。

Cookie を使用してページが更新されるたびにブラウザにカウントアップさせるか、現在のノード番号をデータベース、ファイル、または URL のどこかに保存してサーバー側でこれを記憶させることができます。

おそらく最も簡単な方法は、次のノード番号を URL の末尾に追加することです。これにより、そのページがリロードされると、サーバー側でそのパラメーターが表示され、そのノードをロードできるようになります。このようなもの:

$node = 0;
if (empty($_GET['nextnode']))
{
    header('Location: example.php?nextnode=' . node + 1);
} else {
    $node = $_GET['nextnode'];
}
...
$xml->property[$node]->propertyID;

ページが更新されると、通常どおり PHP スクリプトにリクエストが送信されますが、リクエストされた URL の末尾に次のようなものが含まれます。

?nextnode=23

PHP はこれらの URL パラメータを$_GET配列に格納します。これをスクリプトでクエリできます。詳細については、ヘッダーのドキュメントを参照してください。

もう 1 つの同様の手法は、PHP でページを作成するときに非表示のフォーム フィールドに値を格納することです。

echo '<form>
    <input type="hidden" value="'.$node + 1.'" />
    <input type="submit" value="Next Node" />
</form>';

これにより、ページに「次のノード」ボタンが作成され、誰かがクリックするとフォーム送信として返されます。次に、次のノードを検索して、ページを再表示できます。PHP でフォームを処理する方法の詳細については、こちらを参照してください。

于 2013-05-14T18:56:02.937 に答える