2

通常は自分で調べようとするので、これがウェブ上での最初の実際のコーディングの質問になりますが、彼の時間は本当に行き詰まっています。

私がこれまでに持っているものを見るには:このウェブページを見てください


私が達成したいこと:

私が現在働いている会社は、あなたの状況を選択し、それを拡張することで、WiFi 関連の問題を解決する「ウィザード」を作成することを望んでいます。最終的には、Joomla を利用した Web サイトに実装する必要があるため、すべてを 1 つのページにロードする方法を考えました。


私がそれにどのように近づいているか

最初に、他のページを 1 つのメイン ページにロードする方法を探しました。JavaScript を使用してこれを達成しました (この Web サイトにあります)

それを理解した後、「フォローアップ」ページの作成を開始し、URL パラメータを取得してコンテンツをフィルタリングするページにたどり着くまで、すべてがうまくいきました。

ツールチップ機能に興味のある方は[こちらのページ][3]をご覧ください


どうしたの

If Else ループを使用して可能なオプションを除外します。これらのいずれも見つからない場合は、ページに次のように表示されます。「Het ziet er naar uit dat er iets fout is gegaan」または英語で「間違えた"。これは私が受け取ったメッセージなので、実際には何かがうまくいかなかった. そして、コードを何度も調べた後、取得できない URL パラメーターが原因である可能性があると考えました。

静的なページ リンク (ボタンを固有のページにリンクするだけ) を考えましたが、いくつかの計算を行ったところ、それが機能するには約 70 ページ以上必要で、もったいない気がします。


コード

これまでの私のコードは次のとおりです。

私のメインページ

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>EnGenius WiFi Wizard</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript" src="js/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="js/script.js"></script>

    </head>

    <body>
    <script type="text/javascript">
    function loadContent(elementSelector, sourceUrl) {
    $(""+elementSelector+"").load(""+sourceUrl+"");
    }
    </script>
<div id="content">
  <h1>De WiFi Wizard</h1>
    <h3>Snel en gemakkelijk een draadloze oplossing</h3>

  <div id="btnholder" style="margin-top:15px;">
            <a href="javascript:loadContent('#content', 'speed.php');"><div         id="button">Mijn internet is te langzaam</div></a>
            <a href="javascript:loadContent('#content', 'router.php');"><img         src="images/tip.png" style="float:left; margin-left:3px;" alt="WiFi tip" width="15"         height="15" onmouseover="tooltip.show('Internet snelheid word ook wel aangeduid met het         woord Bandbreete', 250);"
    onmouseout="tooltip.hide();" />
            <div id="button" style="margin-left:10px;">Ik heb een router nodig,         Maar weet niet welke</div></a><img src="images/tip.png" style="float:left; margin-        left:3px;" alt="WiFi tip" width="15" height="15" onmouseover="tooltip.show('Een router is         een apparaat wat een netwerk met het internet verbind', 250);"
    onmouseout="tooltip.hide();" />
  </div> 
    <h3>Wat is Wifi eigenlijk?</h3><br />

    <h4>WiFi is een verzameling van standaarden voor draadloze netwerken.

    Wat houdt dit nou precies in?
    Heel makkelijk gezegd: Internetten zonder lastige lange kabels! 
    Je kunt bv met jouw laptop lekker op de bank zitten en genieten van internet.<br />        <br />

    Als je thuis een draadloos netwerk wilt dan heb je een product nodig waar dus de         standaard/naam ‘802.11’ op staat.<br />
    Helaas zijn we in Nederland een behoorlijk bepakt (woon)gebied. Hierdoor kun je         bijvoorbeeld storing hebben op jouw (technische) producten die je thuis gebruikt.<br /><br         />

    Ook met WiFi kunnen er situaties voorkomen waarbij je geen optimaal gebruik kunt         maken van de oplossingen die worden aangeboden.<br /><br />
    Via deze website kom je op de hoogte wat nou al die termen eigenlijk betekenen en
    welke oplossingen er zijn voor bepaalde situaties, kortom je wordt een echte WiFi         kenner!<br />
    <br />
    </h4>       
</div>

    </body>
    </html>

2 番目のページのコンテンツ

               <h1>De WiFi Wizard</h1>
            <h3>Dus u heeft een probleem met de snelheid van uw internet? Dat gaan we oplossen!</h3>
            <h3 style="font-size:10pt; color:#666666;">Wat is de afstand tussen uw computer en uw router?</h3>

            <div id="btnholder" style="margin-top:15px;">
            <a href="javascript:loadContent('#content', 'detail.php?prob=010');"><div id="button">0-10 Meter</div></a>
            <a href="javascript:loadContent('#content', 'detail.php?prob=1030');"><div id="button" style="margin-left:10px;">10-30 Meter</div></a>
            <a href="javascript:loadContent('#content', 'detail.php?prob=30');"><div id="button" style="margin-top:10px; margin-left:90px;">Meer dan 30 Meter</div></a>
            </div> 
            <br />
            <h3>Waarom is afstand zo belangrijk?</h3>
            <br />

            <h4>Een WiFi signaal reist door de lucht, en kan worden verstoord door veel verschillende dingen zoals, muren, plafonds, andere apparaten, en andere WiFi signalen.</h4>
            <h4>Daarnaast verliest een signaal na verloop van tijd zelf ook sterkte, net als met geluid dat je over een grotere afstand steeds slechter hoort. </h4>
            <h4>Stel je voor dat je het signaal sterker kan maken, door een ander apparaat te gebruiken. Dat kan, omdat wij  altijd onderdelen van hoge kwaliteit gebruiken, kunnen wij ervoor zorgen dat uw WiFi signaal een beter bereik heeft, en u dus een snellere verbinding krijgt.<br />
            <br />
            </h4>       

My URL パラメータ ページ

            <h1>De WiFi Wizard</h1>
            <?php   

            $prob = $_GET["prob"]; 

            if ($prob == 010)
            {
            echo "<h3 style='font-size:10pt; color:#666666;'>Nu we de aftand weten moeten we uitvinden hoeveel mensen er gebruik maken van het netwerk</h3>";
            } 

            if ($prob == 1030){ 

            echo "<h3 style='font-size:10pt; color:#666666;'>Nu we de aftand weten moeten we uitvinden hoeveel muren en/of plafonds er zich tussen de computer en de router bevindenk</h3>";
            }

            if ($prob == 30){ 

            echo "<h3 style='font-size:10pt; color:#666666;'>Nu we de aftand weten moeten we uitvinden hoeveel mensen er gebruik maken van het netwerk</h3>";
            }

            else{
            echo "<h3 style='font-size:10pt; color:#666666;'>Het ziet er naar uit dat er iets fout is gegaan</h3>";
            }                   



            ?>

            <div id="btnholder" style="margin-top:15px;">
            <?php   

            $prob = $_GET["prob"]; 

            if ($prob == 010)
            {
            echo "<a href='javascript:loadContent('#content', 'users.php?amnt=15');'><div id='button'>1-5 gebruikers</div></a>
            <a href='javascript:loadContent('#content', 'users.php?amnt=5');'><div id='button'>Meer dan 5 gebruikers</div></a>";
            } 

            if ($prob == 1030){ 

            echo "<a href='javascript:loadContent('#content', 'pen.php?amnt=none');'><div id='button'>Geen plafonds of muren</div></a>
            <a href='javascript:loadContent('#content', 'pen.php?amnt=1');'><div id='button'>1 Muur of Plafond</div></a>
            <a href='javascript:loadContent('#content', 'pen.php?amnt=2');'><div id='button'>2 Muren of Plafonds</div></a>
            <a href='javascript:loadContent('#content', 'pen.php?amnt=more');'><div id='button'>Meer dan 2 muren of plafonds</div></a>";
            }

            if ($prob == 30){ 

            echo "<a href='javascript:loadContent('#content', 'users.php?amnt=15');'><div id='button'>1-5 gebruikers</div></a>
            <a href='javascript:loadContent('#content', 'users.php?amnt=5');'><div id='button'>Meer dan 5 gebruikers</div></a>";
            }

            else{
            echo "-";
            }                   



            ?>

            </div> 
            <br />  
            <?php   

            $prob = $_GET["prob"]; 

            if ($prob == 010)
            {
            echo "<h3>Wat Maakt het aantal gebruikers uit?</h3>
            <br />

            <h4>Het aantal gebruikers bepaalt de hoeveelheid data die er word gebruikt binnen een netwerk. Hoe meer gebruikers er op een netwerk zitten, des te meer data word er gebruikt.<br />
            <br />Als het netwerk dit niet aankan, betekent het dat u een onstabiel, en traag netwerk krijgt, waardoor u niet optimaal van uw internet kunt genieten.</h4>";
            } 

            if ($prob == 1030){ 

            echo "<h3>Wat Maakt het aantal muren of plafonds uit?</h3>
            <br />

            <h4>Waneer een WiFi signaal door muren of plafonds heen reist, neemt het in sterkte af. Dus hoe meer obstakels er tussen uw router, en uw computer staan, des te zwakker het signaal.<br />
            <br />Door middel van de juiste onderdelen, denk bijvoorbeeld aan antenna's, kun je een sterker signaal creëren dat zich verder kan verspreiden.</h4>";
            }

            if ($prob == 30){ 

            echo "<h3>Wat Maakt het aantal gebruikers uit?</h3>
            <br />

            <h4>Het aantal gebruikers bepaalt de hoeveelheid data die er word gebruikt binnen een netwerk. Hoe meer gebruikers er op een netwerk zitten, des te meer data word er gebruikt.<br />
            <br />Als het netwerk dit niet aankan, betekent het dat u een onstabiel, en traag netwerk krijgt, waardoor u niet optimaal van uw internet kunt genieten.</h4>";
            }

            else{
            echo "-";
            }                   



            ?>

私のコードが不明確で申し訳ありませんが、ウェブサイトにコードを貼り付ける全体に慣れる必要がありますが、少なくとも試してみました.


ですから、私たちの中のTL;DRの人々にとっては。要するに:

URL パラメーターを使用して php ページをフィルター処理する必要がありますが、URL が直接変更されないため、パラメーターを取得できないようです。

私がこれまでに持っているものを見るには:このウェブページを見てください

前もって感謝します!

4

3 に答える 3

3

比較する値を引用符で囲む必要があります。たとえば010、8 進数として解釈されます。

if ($prob == '010') {
    ...
} else if ($prob == '1030') {
    ...
}

等々。

編集: また、Noah が述べたように、「prob」パラメーターは URL に渡されず、「id」のみが渡されます。したがって、 を割り当て$prob = $_GET['id']ます。

于 2012-05-22T15:23:03.903 に答える
2

AJAX リクエストに追加されているパラメーターが、PHP コードが探しているパラメーターと異なるようです。

ウィザードのホームページから、[インターネットが遅すぎます] (Google 翻訳によって翻訳された最初のボタン) をクリックすると、3 つのボタンのいずれかをクリックすると、説明したエラー ページが表示されます。リクエストされている URL は ですが、PHP スニペットによると、スクリプトはGET パラメータ/detail.php?id=010を探しているとのことです。prob

に送信されるprobパラメーターまたは PHP スクリプトが探しているパラメーターをに調整してみてくださいid

于 2012-05-22T15:22:48.727 に答える
2

Noah FreitasDanによって既に強調されているポイントに加えて、PHPスイッチを使用してすべての可能な値を移動することをお勧めします。よりクリーンで、デフォルト オプションを使用すると、何も見つからない場合にエラー値を返すことができます。

また、 isset()で変数を確認してください。そうでない場合は、その存在を想定しないでください。

  • スクリプトのデバッグに時間がかかりすぎます。
  • 何かが渡されているかどうかわかりません。
  • PHP 通知( Notice: Undefined variable、またはNotice: Undefined index)を受け取る場合があります。
  • 等..

コードに基づく PHP の例

<?php   

// check if variable is present to use it or pass empty
$prob = (isset($_GET["id"])) ? ($_GET["id"]) : (''); 

// switch by all possible values
switch ($prob) {

  case "010":
    echo "bla bla bla";
    break;

  case "1030":
    echo "bla bla bla";
    break;

  case "30":
    echo "bla bla bla";
    break;

  default:
    // This case matches anything that wasn't matched by the other cases
    // output error, or something...
    echo "-";
    break;

}

?>

スクリプトに関連して、それほど多くの二重引用符を使用する必要はありません。

<script type="text/javascript">
function loadContent(elementSelector, sourceUrl) {
  $(elementSelector).load(sourceUrl);
}
</script>
于 2012-05-22T16:13:12.610 に答える