Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] radio disable po wybraniu enable
Forum PHP.pl > Forum > Przedszkole
matius71
Witam,

Potrzebuje zrobić dwa pola i w zależności od tego które się wybierze to to pole będzie aktywne. Myślałem o tym żeby zrobić to przez wybranie za pomocą "radio" i w zależności od tego które się kliknie to te pole będzie się aktywowało i będzie można w nie wpisać informacje. Czy jest to możliwe w PHP?
olszam
Dynamicznie tylko javascript.
trueblue
Skoro użytkownik wybiera opcję z radio, to najzwyczajniej możesz ignorować wartość z pola tekstowego przypisanego do tej opcji radio (czyli nie musisz blokować).

A wizualnie można to dodatkowo rozwiązać tak:
https://jsfiddle.net/k2534yLo/4/
matius71
Dzięki trueblue, właśnie tak zrobiłem tylko nie zdążyłem tu napisać smile.gif

Zrobiłem to w ten sposób:

  1. <div class="form-row">
  2. <div class="form-group col-md-6">
  3. <input type="radio" name="nalot" value="" onclick="document.getElementById('Time').disabled=true; document.getElementById('km').disabled=false">
  4. <label class="control-label">km</label>
  5. <input type="text" name="km" disabled="disabled" step="0.1" min="0" max="99999" id="km" class="form-control input-lg" placeholder="00000,0" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['km'], ENT_QUOTES); } ?>" tabindex="4">
  6. </div>
  7.  
  8. <div class="form-group col-md-6">
  9. <input type="radio" name="nalot" value="" onclick="document.getElementById('Time').disabled=false; document.getElementById('km').disabled=true">
  10. <label for="example-time-input" class="control-label">Time</label>
  11. <input type="text" name="Time" disabled="disabled" id="Time" class="form-control input-lg" placeholder="35:15" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['Time'], ENT_QUOTES); } ?>" tabindex="4">
  12. </div>
  13. </div>


Niestety jak wyśle formularz bez wyboru żadnej z opcji to sypie mi błędami:

D:\xampp\htdocs\..... in D:\xampp\htdocs\..... on line 39

Notice: Undefined index: Time in D:\xampp\htdocs\..... on line 40

linia 39 i 40:

$km = $_POST['km'];
$Time = $_POST['Time'];


W pierwszym placeholder mam:

<br /><b>Notice</b>: Undefined index: km in <b>D:\xampp\htdocs\.....</b> on line <b>158</b><br />

w Drugim:

<br /><b>Notice</b>: Undefined index: km in <b>D:\xampp\htdocs\......</b> on line <b>164</b><br />

Błędu nie ma w komórce którą wybiorę i wypełnię ale problem jest taki że to jest wybierane między jedną a drugą opcją przez radio więc któraś opcja musi być pusta biggrin.gif Czy możecie powiedzieć czemu tak się dzieje?
trueblue
Czyli zrobiłeś to inaczej.

O błędzie notice było na forum setki razy. Poszukaj.
matius71
Ok, rozumiem że Notisy nie zawsze są mega ważne ale wolałbym ich nie wyciszać

  1. error_reporting(E_ALL ^ E_NOTICE);


Tylko jak rozumiem lepiej użyć

  1. if (isset($_POST['bla bla'])){
  2. }


Tylko że ja już mam taki ciąg kodu w tym miejscu gdzie powinienem to dodać że to sie chyba nie da biggrin.gif

  1. <input type="text" name="km" disabled="disabled" step="0.1" min="0" max="99999" id="km" class="form-control input-lg" placeholder="00000,0" value="
  2. <?php if(isset($error)){ echo htmlspecialchars($_POST['km'], ENT_QUOTES); } ?>" tabindex="4">

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.