Получение контента с других страниц и использование параметров URL

StackOverflow https://stackoverflow.com//questions/10704779

Вопрос

Итак, вот мой первый настоящий вопрос по программированию в Интернете, поскольку обычно я пытаюсь найти что-то сам, но в его время я действительно застрял.

Чтобы увидеть, что у меня есть на данный момент: посмотреть эту веб-страницу


Чего я хочу достичь:

Компания, в которой я сейчас работаю, хочет, чтобы я создал «волшебника», который решит проблему, связанную с Wi-Fi, выбрав вашу ситуацию и расширив ее.В конце концов, его необходимо реализовать на веб-сайте на базе Joomla, поэтому я решил, что лучше всего загрузить все на одну страницу.


Как я к этому подхожу

Сначала я пошел искать способ загрузки других страниц в одну главную.Я достиг этого с помощью JavaScript (Найдено на этом сайте)

Выяснив это, я начал создавать свои «последующие» страницы, и все шло хорошо, пока я не пришел к странице, которая фильтровала ее содержимое, получая параметр 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>

Содержание моей второй страницы

               <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>       

Моя страница параметров 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 "-";
            }                   



            ?>

Извините, если мой код неясен, мне нужно привыкнуть ко всей вставке кодов на сайтах, но я хотя бы попробовал.


Итак, для ТЛ;ДР люди среди нас.Суммируя:

Мне нужно отфильтровать php-страницу с параметрами URL-адреса, но он не может получить параметр, поскольку URL-адрес не меняется напрямую.

Чтобы увидеть, что у меня есть на данный момент: посмотреть эту веб-страницу

Заранее спасибо!

Это было полезно?

Решение

Похоже, параметр, добавляемый к запросу AJAX, отличается от параметра, который ищет код PHP.

Если на домашней странице мастера вы нажмете «Мой Интернет слишком медленный» (первая кнопка, переведенная Google Translate). Если вы затем нажмете любую из трех кнопок, я получу описанную вами страницу ошибки.Запрашиваемый URL-адрес /detail.php?id=010, но ваш фрагмент PHP говорит, что скрипт ищет prob ПОЛУЧИТЬ параметр.

Попробуйте настроить параметр, отправляемый на prob или параметр, который ищет PHP-скрипт id.

Другие советы

Вы должны поставить цитаты вокруг значений, с которыми вы сравниваете.Например, 010 будет интерпретироваться как восьмеричный восьмеричный.

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

и так далее.

Редактировать: также, как упомянуто NOAH, параметр NOAH не пропускается в URL, просто «ID».Итак, вы назначаете $prob = $_GET['id'].

В дополнение к пунктам, уже отмеченным Ной Фрейтас и Дэн, я бы рекомендовал вам использовать PHP выключатель для перемещения по всем возможным значениям, это чище, а опция по умолчанию позволяет вам вернуть значение ошибки, если ничего не найдено.

Также проверьте свои переменные с помощью иссет(), не предполагайте их присутствия, иначе:

  • вы слишком долго отлаживаете свой скрипт;
  • не осознавать, передается ли что-нибудь;
  • может получить уведомление 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top