Pokaż wyniki od 1 do 5 z 5

Wątek: Błąd w kodzie \radio i post

  1. #1
    Zarejestrowany
    Dołączył
    Mar 2010
    Posty
    52

    Domyślnie Błąd w kodzie \radio i post

    Witam. Zrobiłem taki kodzik (zlepiony z kilku różnych)
    Kod:
    <? if($_POST['avatar'] == 3){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    if($_POST['avatar'] == 4){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    if($_POST['avatar'] == 5){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }}} ?>
    <table width="0" border="0">
    <form method="POST" onsubmit="return checkError(this)">
    	<input type="hidden" name="sel" id="sel" value="">
      <tr>
        <td><img src="avatars/3.png" width="153" height="153" /></td>
        <td><input type="radio" name="avatar" value="3" onclick="document.getElementById('sel').value = 'true'"></td>
      </tr>
      <tr>
        <td><img src="avatars/4.png" width="152" height="152" /></td>
        <td><input type="radio" name="avatar" value="4" onclick="document.getElementById('sel').value = 'true'"></td>
      </tr>
      <tr>
        <td><img src="avatars/5.png" width="153" height="153" /></td>
        <td><input type="radio" name="avatar" value="5" onclick="document.getElementById('sel').value = 'true'"></td>
      </tr>
      
    </table>
    <p><input type="submit" value="Zapisz!" name="submit" class="mod_submit"></p></form>
    Jego zadaniem jest to, że użytkownik ma wyświetlonych kilka avatarów i może sobie wybrać jakiś (zaznacza go dzięki opcji radio) i wciska zapisz. Wtedy pojawia się aktualizacja w bazie i zmienia rekord na ten który był zaznaczony radiem.

    Ogólnie skrpyt działa tylko dla avatar = 3, reszta nie trybi. What's wrong ?

  2. #2
    Zasłużony Awatar Alson
    Dołączył
    Jan 2009
    Posty
    468

    Domyślnie

    Kod php:
    <?php
    //nie lubie short tagow
     
    if($_POST['avatar'] == 3){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    if(
    $_POST['avatar'] == 4){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    if(
    $_POST['avatar'] == 5){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }}} 
    ?>
    A nie tak:
    Kod php:
     <?php

     
    if($_POST['avatar'] == 3){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }
    else if(
    $_POST['avatar'] == 4){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }
    else if(
    $_POST['avatar'] == 5){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    ?>
    Mogę się mylić ale godzina jest późna i przeraża mnie ladygaga z linka cezara na sb

  3. #3
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Nie trybilo bo nie zamykales klamry warunkowej a pozniej zamknales wszystkie 3 na raz. Klamry powinny byc zamykane po kazdym zapytaniu i przed kazdym nastepnym ifem w tym wypadku.

    Przyklad Alsona zadziala ale nie rozwiazuje on problemu tylko go omija poprzez przepisanie kodu ponownie ^^

  4. #4
    Zarejestrowany
    Dołączył
    Apr 2010
    Posty
    176

    Domyślnie

    fajne podejście dla 3 avatarów, gorzej jak potrzebujesz ich więcej, spróbuj tak:
    Kod php:
    <?php
    $avatars 
    = array("avatar1.gif""avatar2.gif""avatar3.gif""avatar4.gif"); // itd, wpisujesz nazwy plików
    // jeżeli wybrany avarat znajduje sie w naszej tablicy to update
    if (in_array($_POST['avatar'], $avatars)){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }
    ?>
    <table width="0" border="0">
    <form method="POST" onsubmit="return checkError(this)">
        <input type="hidden" name="sel" id="sel" value="">
    <?php
    // teraz dla każdego avatara w tablicy generujemy radiobutton
    foreach ($avatars as $value) { ?>
      <tr>
        <td><img src="avatars/<?php echo $value?>" width="153" height="153" /></td>
        <td><input type="radio" name="avatar" value="<?php echo $value?>" onclick="document.getElementById('sel').value = 'true'"></td>
      </tr>
    <?php ?>
    </table>
    <p><input type="submit" value="Zapisz!" name="submit" class="mod_submit"></p></form>
    do tego będziesz musiał zmienić wyświetlanie i być może typ pola, bo w swoim przykładzie przechowujesz avatar jako cyfrę, a w moim przykładzie jest nazwa pliku

  5. #5
    Zarejestrowany
    Dołączył
    Mar 2010
    Posty
    52

    Domyślnie

    Cytat Zamieszczone przez tribe Zobacz posta
    fajne podejście dla 3 avatarów, gorzej jak potrzebujesz ich więcej, spróbuj tak:
    Kod php:
    <?php
    $avatars 
    = array("avatar1.gif""avatar2.gif""avatar3.gif""avatar4.gif"); // itd, wpisujesz nazwy plików
    // jeżeli wybrany avarat znajduje sie w naszej tablicy to update
    if (in_array($_POST['avatar'], $avatars)){
    mysql_query("UPDATE `users` SET `avatar` = '{$_POST['avatar']}' WHERE `login`='$data->login'");
    }
    ?>
    <table width="0" border="0">
    <form method="POST" onsubmit="return checkError(this)">
        <input type="hidden" name="sel" id="sel" value="">
    <?php
    // teraz dla każdego avatara w tablicy generujemy radiobutton
    foreach ($avatars as $value) { ?>
      <tr>
        <td><img src="avatars/<?php echo $value?>" width="153" height="153" /></td>
        <td><input type="radio" name="avatar" value="<?php echo $value?>" onclick="document.getElementById('sel').value = 'true'"></td>
      </tr>
    <?php ?>
    </table>
    <p><input type="submit" value="Zapisz!" name="submit" class="mod_submit"></p></form>
    do tego będziesz musiał zmienić wyświetlanie i być może typ pola, bo w swoim przykładzie przechowujesz avatar jako cyfrę, a w moim przykładzie jest nazwa pliku
    Ok dzięki, nom mam cyfrę, ponieważ avatar wywołuję w tak sposób
    <img src=avatars/<? echo $user->avatar; ?>.png">

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Sklep i ekwipunek. Błędy w kodzie i konstrukcja tabeli.
    Przez Croos w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 4
    Ostatni post / autor: 27-08-2010, 05:11
  2. Funkcje czy w kodzie
    Przez Armed79 w dziale PHP / MySql
    Odpowiedzi: 12
    Ostatni post / autor: 04-06-2009, 20:22
  3. Radio / Mikrofon
    Przez groszek1234 w dziale Kosz
    Odpowiedzi: 5
    Ostatni post / autor: 02-03-2009, 21:58
  4. Błąd w kodzie
    Przez Viperx w dziale Support Vallheru
    Odpowiedzi: 8
    Ostatni post / autor: 23-12-2008, 00:09

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •