« 1 2 »
Autor Zpráva
Dieee
Profil
Ahoj,
zase sem píšu je mi to trapný :( Potřeboval bych poradit. Nechápu čim by to mohlo být.
Mám formulář, kde mám selecty a input. Chtěl bych udělat, že pokud v selectu bude value 1 a input(textový) bude prázdný tak mi to napíše chybovou hlášku. Jednoduchý! ANO!..
<?php
if (!isset($_POST['submit']))
  {
          include 'reg.php';
          exit;
  }
else  {
if(isset($_POST['select']['input'])){
  if(($_POST['select'] == '1') || empty($_POST['input'])){
    $reg_error = 'Nevybral jsi ani jednu vec!';
    include 'reg.php'; 
    exit;
    }
    }
 echo 'Vyplnil jste formulář dobře'
 }
 ?>
 

Celý by mě to fungovalo, kdyby tam nebyl ten input :( Jak kdyby mi to nečetlo, že pokud Input(textový) bude prázdný tak to vyhodí chybu.
Děkuji za rady
Keeehi
Profil
Dieee:
Asi takto:
<?php
if (!isset($_POST['submit']))  {
  include 'reg.php';
  exit;
}
elseif($_POST['select'] == 1 and empty($_POST['input'])){
  $reg_error = 'Nevybral jsi ani jednu vec!';
  include 'reg.php';
  exit;
}
else
  echo 'Vyplnil jste formulář dobře';
?>

Nějak nechápu význam tvého osmého řádku.
Dieee
Profil
Keeehi:
Vyhodilo mi to chybu Notice: Undefined index: select

Řekl bych, že by to mělo být něco že nemám pojmenovaný selecty, ale to mám správě - každej name="select". Napadá tě něco?
Jinak osmým řádkem jsem se domníval, že se zeptam jestli tam opravdu ten select a input je?! (Máš recht jak si to čtu tak je to nanic) =D
panther
Profil
Dieee:
ukaž, jak vypadá to HTML. My to nevíme.

Prvek s name="select" tam není, jinak bys neměl „Undefined index“.
Dieee
Profil
<b>Ovoce: </b><select name="select" id="select1">
                  <option value="1" disabled selected>Vyberte svoje ovoce</option>
                  <?php include("ovoce.php"); ?>
                        </select>
<b>Zelenina: </b><select name="select" id="select2">
                  <option value="1" disabled selected>Vyberte svoji zeleninu</option>
                  <?php include("zelenina.php"); ?>
                        </select>
<input name="vyber_uzivatele" type="radio" onclick="testRadio()"  id="input3" ><input type="text" name="input" disabled>

Inputy a selecty ovládaj ještě "radio" proto disabled. Když zmáčknu "radio" pak do inputu můžu zapisovat (je to psaný v JS), když mám označenej input tak se mi disabled ostatní selecty a naopak.

**
Napadá mě, nemusím v php napsat, že to napřed musí zjistit jestli to je disabled nebo ne??
Keeehi
Profil
panther:
Může tam být, jenom nebyl odeslán.

Dieee:
K scriptu se dostane jen jeden select, protože ten druhý přepíše ten první, jelikož mají stejná jména.
Doporučil bych ti si zjistit, co že ti to vlastně všechno v proměnné $_POST přichází. Takto:
print_r($_POST);
Dieee
Profil
Keeehi:
Toto mi vypíše Array ( [vyber_uzivatele] => on [input] => [heslo1] => gaga [submit] => Odeslat )
Pokud mám "radio" který zapíná select vše je v pořádku hodí mi to error. Jakmile zmáčknu "radio" na input hned mi to vypíše tu hlášku a takhle vypadá výpis z $_POST.
Anonym
Profil *
Když není nic vybráno a zárověň prázdný text form:

<script>
function kontrola()
  {
  var chyba = 0;  
  if(document.form.select1.value!='nic' || document.form.text.value!='')
    {
    document.getElementById('alert1').innerHTML = "";
    document.getElementById('label1').style.color='green';
    document.getElementById('label1').style.color='green';
    }
  if(document.form.select1.value=='nic' && document.form.text.value=='')
    {
    document.form.select1.focus();
    document.getElementById('alert1').innerHTML = "Vyber ovoce";
    document.getElementById('label1').style.color='red'; 
    var chyba = 1;
    }
  if (chyba==0) return true; else return false;
  }
</script>

<form action="vyber.php" name="form" onsubmit="return kontrola()" method="post">
  <span id="label1"><b>Ovoce: </b></span><span id="alert1"></span>
  <select name="select1" id="select1">
    <option value="nic">Vyberte svoje ovoce</option>
    <option value="jablko">Jablko</option>
  </select>
  <input type="text" name="text" id="plocha" />
  <input type="submit" value="Odeslat" />
</form>
Dieee
Profil
Anonym:
Díky, ale chtěl bych to vyřešit php :)
Anonym
Profil *
pomocí php je to ještě lehčí:
if ($_POST["select1"]=='nic' and $_POST["text"]=='') echo 'OK'; else echo 'KO';
Anonym
Profil *
if(($_POST['select'] == '1') || empty($_POST['input'])) ... Jak kdyby mi to nečetlo, že pokud Input(textový) bude prázdný tak to vyhodí chybu.
zkus místo empty() to
elseif($_POST['select'] == 1 and $_POST['input']=='')
Dieee
Profil
Anonym:
To jsme zkoušeli, ale vypíše mi to Chybu Notice: Undefined index: select1
Anonym
Profil *
jo já jsem tam dal select1 místo toho select, protože tam bylo select 2x
tak přepiš select1 na select
Dieee
Profil
Anonym:
Pořád to samí jen Notice: Undefined index: select
=D grrr nechápu to!
Anonym
Profil *
a je tam <select name="select... ?
Dieee
Profil
je to tam dokonce 5x u 5 selektů samozřejmě a každý jsem zkontroloval tak 100x =D Nechápu, fakt ne!
Keeehi
Profil
Ze [#7] je nejspíše vidět kde je problém. $_POST["select"] prostě neexistuje. Máš 2 možnosti.
1) Ignorovat tuto hlášku. Je to vlastně jen upozornění a funguje to i tak normálně.
2) Někam na začátek dát $select = (isset($_POST["select"])?$_POST["select"]:""); a potm dál ve scriptu místo $_POST["select"] používat $select.
Anonym
Profil *
Schválně jsem si to zkusil a toto mi jde:
<?php
  if ($_POST["select1"]=='nic' and $_POST["text"]=='') echo 'Není nic vybráno a zároveň je nevyplněné textové pole'; else echo 'Něco je vybráno';
?>

<form action="vyber.php" name="form" onsubmit="return kontrola()" method="post">
  <span id="label1"><b>Ovoce: </b></span><span id="alert1"></span>
  <select name="select1" id="select1">
    <option value="nic">Vyberte svoje ovoce</option>
    <option value="jablko">Jablko</option>
  </select>
  <input type="text" name="text" id="plocha" />
  <input type="submit" value="Odeslat" />
</form>
Keeehi
Profil
Anonym:
Protože takto se vždy odešle select s name select1, takže index select1 u pole $_POST existuje. Předpokládám, že prohlížeč Dieeeovi select kvůli disabled neodesílá, takže v POST se nevytvoří index select1, přes který se pokouší potom do pole dostat a proto dostává to upozornění, že takový index neexistuje.
Dieee
Profil
Keeehi:
To je sice pěkný, ale když to udělám nevyplněný pole projde kontrolou a funguje to jako by se nic nestalo :-/ A to nechci proto se s tím tak seru! :(

Anonym:
Jo já vim, mám to stejně fakt že jo! Zkusil jsem to na nový stránce a tam mi to funguje (samozřejmě). Nevim v čem je error na tý co mám teď.
***
Pokud použiju ten tvůj jednoduchý php script a dám ho do mého formuláře. Napíše to Notice: Undefined index: select + "Něco je vybráno" =DD
Anonym
Profil *
Aha v tom odeslaném není žádný select Array ( [vyber_uzivatele] => on [input] => [heslo1] => gaga [submit] => Odeslat ) - přitom tam vidím zapnutý radio.
Dieee:
Takže bude mít pravdu Keeehi a chyba bude v tom disabled.
Zkusil bych bádat v tom javascriptu, který má asi vypínat ten disabled.
Dá se to taky udělat tak, že když se něco napíše do formu, tak javascript udělá ze selectu disabled- to by se ti nehodilo?
Dieee
Profil
Anonym:
No bádat v tom js hmm nejsem žádnej profík =D nevim jestli najdu chybu... Klidně ho sem napíšu nevidím v něm nic extra.

function testRadio(){

document.getElementById("select1").disabled = !(document.getElementById("input1").checked)
document.getElementById("select2").disabled = !(document.getElementById("input2").checked)
if(document.myForm.vyber_uzivatele('input3').checked){
    document.myForm.input11.disabled=false;
    document.getElementById("select1").disabled
    }
else{
document.myForm.input11.disabled=true;
document.myForm.input11.value='';
}
if (document.getElementById("select1").disabled)
    document.myForm.select1.selectedIndex='Vyberte svoje ovoce';

if (document.getElementById("select2").disabled)
    document.myForm.select2.selectedIndex='Vyberte svoji zeleninu';

if (document.getElementById("input11").disabled)
    document.myForm.input11.value='';
    }

Vidíš v tom něco? Kdyby to šlo udělat v php tak to udělám, jenomže jsem to chtěl mít dynamicky, né až po tom co zmáčknu submit :(
Keeehi
Profil
Dieee:
To je sice pěkný, ale když to udělám nevyplněný pole projde kontrolou a funguje to jako by se nic nestalo :-/ A to nechci proto se s tím tak seru! :(
Problém je v tom, že se ti neodesílá ten select, proto to tou podmínkou projde, protože se nerovná 1. Když se neodešle, nemůže se rovnat jedničce.
Anonym
Profil *
if(document.myForm.vyber_uzivatele('input3').checked){
    document.myForm.input1.disabled=true;
    document.getElementById("select1").disabled
    }
else{

ve zvýrazněném řádku bude určitě chyba - je celý?
javascript nehlásí errory, takže ti to tam krachne a neoddisabluje se to
slovo "neoddisabluje" nemá nic společného s žaludečními problémy
Anonym
Profil *
Když se neodešle, nemůže se rovnat jedničce. to je taky pravda. Teď zjistit, proč se to neodesílá.
Dieee
Profil
Anonym:
Promiňte. Upravil jsem to newim proč takhle!(aby se tomu dalo líp porozumět a posral jsem to) Ten řádek jsem tam dal proto,že když se spustí formulář automaticky (checked) se dá input1 a select1(neni disabled) a pokud přepnu na input3 a bude check tak se disabluje select1 a zároveň se oddisabluje input11 aby se mohl napsat text. a naopak to funguje stejně (teda myslim) =D
Dieee
Profil
Takže po asi dalších 2h snažení jsem to udělal takhle: Řekl jsem si že JS mi ohlídá seleckty, aby najednou nemohlo být select i input a pak jsem jednoduše napsal
if(isset($_POST['select'])){
    if($_POST['select'] == '1' ){
        $reg_error = 'Musíš si vybrat';
        include 'reg.php';
  }
  }
  if(isset($_POST['jmeno'])){
    if($_POST['jmeno'] == ''){
        $reg_error = 'Jméno chlapče!';
        include 'reg.php';
        }
        }

Ha, když je to úplně jednoduchý xD. Zapomněl jsem, že mi to ten JS může pohlídat, takže jsem měl nutkání tu chybu "Musíš zadat do textu něco a nebo vyber ze selektu" napsat do jednoho příkazu v php. Tak jsem to rozdělil a je to. Chvíli mi to trvalo. Teď si musím pohlídat aby ten kdo se bude reagovat měl zapnutý JS xD to se zmákne, až dodělám web, budu možná přemýšlet jak se vyhnout i tomu JS, teď po zabitým celým dnu už fakt ne =D
Díky lidi za pomoc!
Joker
Profil
Dieee:
Řekl jsem si že JS mi ohlídá seleckty, aby najednou nemohlo být select i input
A když to bude vyplňovat někdo s vypnutým JS?
Keeehi
Profil
Dieee:
Teď si musím pohlídat aby ten kdo se bude reagovat měl zapnutý JS
To se ti nepovede.

Schválně si vyzkoušej, jak to bude fungovat bez JS.
Dieee
Profil
Neexistuje žádnej script v php na to aby zjistil jestli mám zapnutý/vypnutý JS?
Určitě jo..zkuste se logovat na Facebook bez JS Vypíše to chybu a tuhle potřebuju taky vyspat? Nějaký návrhy? =))
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0