Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze zmiennymi i elementem RADIO
Forum PHP.pl > Forum > Przedszkole
MP1
Mam błąd.

  1. <?php
  2. <tr>
  3. <td class=\"dt1\">
  4. <b>Oznaczać typ kartki FLASH i QuickTime?</b>
  5. <br />
  6. <span class=\"m\">Wyświetla odpowiedni znaczek na miniaturce.</span>
  7. </td>
  8. <td class=\"dt2\" width=\"200\">
  9. <input type=\"radio\" value=\"t\" name=\"pokaz_znaczek\" ');
  10. //no i tu zaczyna się problem:
  11. if($pokaz_znaczek==&#092;"t\") { echo('\"checked=\"checked\" '); }
  12. echo('/> Tak &nbsp;
  13. <input type=\"radio\" name=\"pokaz_znaczek\" value=\"n\" ');
  14. if($pokaz_znaczek==&#092;"n\") { echo('\"checked=\"checked\" '); }
  15. echo(' /> Nie</td></tr>');
  16. ?>

Zmienna $pokaz_znaczek jest równa "t" (sprawdzałem to za pomocą ECHO), ale po wygenerowaniu strony kółko nie jest zaznaczone. Dlaczego? Co jest źle?
marcin96
może dlatego że zamiast tak:

  1. <?php
  2. echo('\"checked=\"checked\" ');
  3. ?>


powinno być:
  1. <?php
  2. echo(' checked=\"checked\" ');
  3. ?>


W dwóch miejscach masz tak zobione..

..nie sprawdzałem, ale tutaj wydaje mi się wkradł się właśnie błąd.
krutul
Cytat(marcin96 @ 2004-07-15 17:34:01)
........

powinno być:
  1. <?php
  2. echo(' checked=\"checked\" ');
  3. ?>

........

Po co to żeby pole radio było zaznaczone wystarczy:
  1. <input type="radio" value="t" name="pokaz_znaczek" checked>


a więc:
  1. <?php
  2. echo(' checked ');
  3. ?>
broU
z tego co wiem , to według specyfikacji XHTML'a należało by napisać checked=\"checked\" biggrin.gif
MP1
Po co robić:
checked=\"checked\"
skoro kod w funkcji ECHO jest otoczony znakami:
'
questionmark.gif?

echo(' coś tam ');
radzaw
echo 'checked=\"checked\"'

a czy taka kontrukcja nie jest bledna ? tzn. chyba umieszczenie w ' ' nie spowoduje przeparsowania \" na ", i zostana \" :]
MP1
Śpieszcie się - do końca tygodnia chcę skończyć tą część... Jakie jest rozwiązanie na ten błąd?
Luke
  1. <tr>
  2. <td class=\"dt1\">
  3. <b>Oznaczać typ kartki FLASH i QuickTime?</b>
  4. <br />
  5. <span class=\"m\">Wyświetla odpowiedni znaczek na miniaturce.</span>
  6. </td>
  7. <td class=\"dt2\" width=\"200\">
  8. <input type=\"radio\" value=\"t\" name=\"pokaz_znaczek\" <?php if($_POST['pokaz_znaczek'] == 't') { echo 'checked=\"checked\"' ; } ?>/> Tak &nbsp;
  9. <input type=\"radio\" name=\"pokaz_znaczek\" value=\"n\" <?php if($_POST['pokaz_znaczek'] == 'n') { echo 'checked=\"checked\"'; }
  10.  ?> />
  11.  Nie
  12. </td></tr>
oldek
  1. <tr>
  2. <td class="dt1">
  3. <b>Oznaczać typ kartki FLASH i QuickTime?</b>
  4. <br />
  5. <span class="m">Wyświetla odpowiedni znaczek na miniaturce.</span>
  6. </td>
  7. <td class="dt2" width="200">
  8. <input type="radio" value="t" name="pokaz_znaczek"
  9. [php]<?php
  10. if(Array['pokaz_znaczek'] == 't') {
  11.   echo " checked='checked'>  Tak";
  12. } else {
  13.   echo "> Nie";
  14. }
  15. ?>[/php]
  16. &nbsp;
  17. </td></tr>


Uwaga : nietestowane, poza tym backslashe w 'echo' tutejszy edytor wstawia sam od siebie sad.gif przynajmniej na podglądzie smile.gif
MP1
Jeszcze taka ciekawostka... tylko jedno takie coś działa poprawnie... a o to kod:
  1. <?php echo('
  2. <tr><td class=\"dt1\">
  3. <b>Sposób logowania: </b>
  4. <br />
  5. <span class=\"m\">Jeśli masz problemy z systemowym logowaniem, użyj logowania F3Kartki.</span>
  6. </td>
  7. <td class=\"dt2\" width=\"200\">
  8. <input type=\"radio\" value=\"system\" name=\"n_log\" ');
  9. if($log==&#092;"system\") { echo('checked=\"checked\" '); }
  10. echo('/> Systemowe &nbsp;
  11. <input type=\"radio\" value=\"F3Kartki\" name=\"n_log\" ');
  12. if($log==&#092;"F3Kartki\") { echo('checked=\"checked \"'); }
  13. echo('/> F3Kartki</td></tr>
  14. '); ?>


Kod został wygenerowany tak:
  1. <tr>
  2. <td class="dt1">
  3. <b>Sposób logowania: </b>
  4. <br />
  5. <span class="m">Jeżelili masz problemy z systemowym logowaniem, użyj logowania F3Kartki.</span>
  6. </td>
  7. <td class="dt2" width="200">
  8. <input type="radio" value="system" name="n_log" /> Systemowe &nbsp;
  9. <input type="radio" value="F3Kartki" name="n_log" checked="checked "/> F3Kartki
  10. </td>
  11. </tr>


Dodam, że kod trochę może się różnić, bo wszędzie w formularzu wartości znaczników NAME poprzedziłem "n_".
marcin96
Czyli dokładnie wystarczyło podmienić to, co napisałem w pierwszej odpowiedzi - nie wiem o co tyle krzyku ;>]
MP1
Cytat(marcin96 @ 2004-07-17 10:26:34)
Czyli dokładnie wystarczyło podmienić to, co napisałem w pierwszej odpowiedzi - nie wiem o co tyle krzyku ;>]

Po co robić odstęp, jak jest już zrobiony wcześniej?
W wygenerowanym kodzie tych pól, gdzie jest problem, nie ma wyrażenia 'checked="checked"'...
Znacie jakieś porządne całodokumentowe parsery php?

Śpieszcie się... dla tego, kto pomoże czeka punkcik.
splatch
Cytat(MP1 @ 2004-07-17 11:23:18)
Cytat(marcin96 @ 2004-07-17 10:26:34)
Czyli dokładnie wystarczyło podmienić to, co napisałem w pierwszej odpowiedzi - nie wiem o co tyle krzyku ;>]

Po co robić odstęp, jak jest już zrobiony wcześniej?
W wygenerowanym kodzie tych pól, gdzie jest problem, nie ma wyrażenia 'checked="checked"'...
Znacie jakieś porządne całodokumentowe parsery php?

Śpieszcie się... dla tego, kto pomoże czeka punkcik.

Cytat
Po co robić odstęp, jak jest już zrobiony wcześniej? W wygenerowanym kodzie tych pól, gdzie jest problem, nie ma wyrażenia 'checked="checked"'... Znacie jakieś porządne całodokumentowe parsery php?


Co znaczy 'całodokumentowe parsery'?
MP1
Chodzi o parsery, które przetestują cały dokument dokładnie i powiedzą, co jest źle!
Nikt nie pomoże? sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.