Comunitatea PHP Romania

 FAQFAQ   CăutareCăutare   MembriMembri   GrupuriGrupuri      ÎnregistrareÎnregistrare   ProfilProfil   Mesaje privateMesaje private   AutentificareAutentificare 

Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc > HTML/JavaScript/CSS

Javascript afisare in timp real
Du-te la pagina 1, 2  Următoare

Răspunde la subiect
  Autor    Mesaj
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  
Javascript afisare in timp real

Salut am facut urmatoarea functie in javascript

code:

 function show()
{
   var ss= document.getElementById('s1');
   var len= ss.options.length;
   var str="";
   var j=0;
   for(var i=0;i<len;i++){      
      if(ss.options[i].selected == true)
      {         
      if(j == 0)
         str= ss.options[i].innerHTML;
      else
         str += '|' + ss.options[i].innerHTML;
      j++;
      }
   }
   document.write(str);
}

<select id="s1" size=3 multiple>
      <option> test1 </option>
      <option> test2 </option>
      <option> test3 </option>
      <option> test4 </option>
      <option> test5 </option>
   </select>
<script>
   show();
   </script>



Problema este urmatoarea atunci cand aleg de exemplu test1,test2,test3 nu mi le afiseaza in timp real ci trebuie sa dau click pe un buton sau refresh la pagina nu stiu cum sa fac sa mi le afiseze in timp real.
[/code]

Mesaj Mar Iul 20, 2010 11:53 pm 
 Vezi profilul utilizatorului Trimite mesaj privat
MarPlo
Senior Member


Data înscrierii: 24/Sep/2008
Mesaje: 459
Locație: Braila


 Răspunde cu citat (quote)  

Incearca sa adaugi in tag-ul <select> onchange=" show()"
_________________
Limba spaniola | Jocuri Anime | PHP MySQL | JavaScript | HTML CSS

Mesaj Mie Iul 21, 2010 8:10 am 
 Vezi profilul utilizatorului Trimite mesaj privat Vizitează site-ul autorului
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

Problema este ca nu pot selecta mai multe, imediat ce dau click pe una se deschide alta pagina.

Mesaj Mie Iul 21, 2010 9:05 am 
 Vezi profilul utilizatorului Trimite mesaj privat
name_wo
New Member


Data înscrierii: 19/Oct/2006
Mesaje: 4


 Răspunde cu citat (quote)  

Pagina noua iti apare din cauza lui document.write, cand este apelata aceasta functie documentul html este deja inchis, si pentru a scrie ceva va fi deschis unul nou.

Rezolvarea este crearea unui DIV dupa SELECT:
<div id="id_echo"></div>

iar in JavaSript in loc de "document.write(str);" scrii:
var echoDiv = document.getElementById('id_echo');
echoDiv.innerHTML = str;

Mesaj Mie Iul 21, 2010 1:47 pm 
 Vezi profilul utilizatorului Trimite mesaj privat
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

Am pus exact asa , dar nu merge.

code:

function show()
{
   var ss= document.getElementById('s1');
   var len= ss.options.length;
   var str="";
   var j=0;
   for(var i=0;i<len;i++){      
      if(ss.options[i].selected == true)
      {         
      if(j == 0)
         str= ss.options[i].innerHTML;
      else
         str += '|' + ss.options[i].innerHTML;
      j++;
      }
   }
   var echoDiv = document.getElementById('id_echo');
    echoDiv.innerHTML = str;
}

<select id="s1" size=6 multiple onchange="show()" >
    <div id="id_echo">
      <option> test1 </option>
      <option> test2 </option>
      <option> test3 </option>
      <option> test4 </option>
      <option> test5 </option>
   </div>
   </select>


[/code]

Mesaj Mie Iul 21, 2010 10:57 pm 
 Vezi profilul utilizatorului Trimite mesaj privat
dechim
Senior Member


Data înscrierii: 10/Mai/2005
Mesaje: 1172
Locație: Drobeta Turnu Severin


 Răspunde cu citat (quote)  

Constructia asta nu e buna

code:

<select id="s1" size=6 multiple onchange="show()" >
    <div id="id_echo">
      <option> test1 </option>
      <option> test2 </option>
      <option> test3 </option>
      <option> test4 </option>
      <option> test5 </option>
   </div>
   </select>



trebuie:
code:

<div id="id_echo">
<select id="s1" size=6 multiple onchange="show()" >
      <option> test1 </option>
      <option> test2 </option>
      <option> test3 </option>
      <option> test4 </option>
      <option> test5 </option>
   </select>
</div>


Mesaj Joi Iul 22, 2010 12:00 am 
 Vezi profilul utilizatorului Trimite mesaj privat
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

am incercat sa modific sa imi afiseze value , dar nu stiu daca e corect.

code:

function show()
{
   var ss= document.getElementById('s1').selectedIndex;
   var len= ss.options.length;
   var str="";
   var j=0;
   for(var i=0;i<len;i++){     
      if(ss.options[i].selected == true)
      {       
      if(j == 0)
         str= ss.options[i].value.innerHTML;
      else
         str += '' + ss.options[i].value.innerHTML;
      j++;
      }
   }
   var echoDiv = document.getElementById('id_echo');
    echoDiv.innerHTML = str;
}


Mesaj Joi Iul 22, 2010 12:48 pm 
 Vezi profilul utilizatorului Trimite mesaj privat
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

ma poate ajuta cineva cu un raspuns.Va rog

Mesaj Vin Iul 23, 2010 9:27 am 
 Vezi profilul utilizatorului Trimite mesaj privat
MihaiC
Senior Member


Data înscrierii: 14/Mai/2006
Mesaje: 1105
Locație: Navodari


 Răspunde cu citat (quote)  

Hai ca pana la urma o nimeriti Razz

code:

<script>
function show()
{
   var ss= document.getElementById('s1');
   var len= ss.options.length;
   var str="";
   var j=0;
   for(var i=0;i<len;i++){     
      if(ss.options[i].selected == true)
      {         
      if(j == 0)
         str= ss.options[i].innerHTML;
      else
         str += '|' + ss.options[i].innerHTML;
      j++;
      }
   }
   var echoDiv = document.getElementById('id_echo');
    echoDiv.innerHTML = str;
}
</script>
<select id="s1" size=6 multiple onchange="show()" >
      <option> test1 </option>
      <option> test2 </option>
      <option> test3 </option>
      <option> test4 </option>
      <option> test5 </option>
 
</select>
    <div id="id_echo"></div>



_________________
Nu da cu piatra-n geam, ca nu-i bicicleta ta!

Mesaj Vin Iul 23, 2010 12:12 pm 
 Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

Ce ai postat tu aici este codul de mai sus nu are nici o legatura cu afisarea de value.Eu vreau sa imi afiseze value nu text .Eu nu am mai pus si codul html am pus doar javascript ca acolo trebuie modificat pentru a afisa value.

Mesaj Vin Iul 23, 2010 6:18 pm 
 Vezi profilul utilizatorului Trimite mesaj privat
MihaiC
Senior Member


Data înscrierii: 14/Mai/2006
Mesaje: 1105
Locație: Navodari


 Răspunde cu citat (quote)  

Pai atunci pune value la option

code:

      <option value="1"> test1 </option>
      <option value="2"> test2 </option>
      <option value="3"> test3 </option>
      <option value="4"> test4 </option>
      <option value="5"> test5 </option>




si modifica ss.options[i].innerHTML cu ss.options[i].value
_________________
Nu da cu piatra-n geam, ca nu-i bicicleta ta!

Mesaj Vin Iul 23, 2010 6:49 pm 
 Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

M-am lovit de alta problema acum nu stiu cum sa preiau datele
din <div id="id_echo"></div> si sa le introduc intr-o clauza where.

$id = <div id="id_echo"></div>;
$sql = mysql_query("SELECT * FROM `tabela` WHERE `id`= '$id ' ") or die(mysql_error());

Am incercat ceva de genu dar nu stiu cum sa preiau datele din div chiar daca sunt multiple.

Mesaj Sâm Iul 24, 2010 1:50 am 
 Vezi profilul utilizatorului Trimite mesaj privat
dechim
Senior Member


Data înscrierii: 10/Mai/2005
Mesaje: 1172
Locație: Drobeta Turnu Severin


 Răspunde cu citat (quote)  

Iata un exemplu functional, cred eu, destul de didactic.
Toata treaba se face intr-un fisier cu extensia php
Daca modifici datele conexiunii la MySQL ar trebui sa functioneze fara alte modificari.

code:

<?php
// verificam daca utilizatorul a facut o alegere
if (isset($_POST['submit']))
{
   $server = 'localhost';      // serverul tau
   $user = 'root';            // utilizatorul MySQL
   $pass =  '';            // parola MySQL
   $db = 'test';            // baza de date
   $tb = 'tabela';            // tabela in care vei cauta ID-ul

   // conectare la serverul MySQL
   $oConn = @mysql_connect($server, $user, $pass) or formDie("Eroare de conectare la serverul MySQL : ".mysql_error());

   // creeaza baza de date daca nu exista
   mysql_query("CREATE DATABASE IF NOT EXISTS ".$db.";",$oConn) or formDie("Eroare la creearea bazei de date : ".$db." - ".mysql_error());

   // selecteaza baza de date
   mysql_selectdb($db,$oConn) or formDie("Nu pot sa folosesc baza de date  : <b>".$db."</b> - ".mysql_error());

   // se creeaza tabela de test daca nu exista
   $sql = "CREATE TABLE IF NOT EXISTS `".$tb."` (
     `id` int(10) NOT NULL auto_increment,
     `info` VARCHAR(30) NOT NULL default '',
     PRIMARY KEY  (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=ascii AUTO_INCREMENT=3 ;";
   $result = mysql_query($sql,$oConn) or die('Nu pot sa creez tabela '.$tb.'('.mysql_error().')');

   // daca tabela este goala o populam cu date de test
   $result = mysql_query('SELECT count(id) as nr FROM `'.$tb.'`;',$oConn) or die('Nu pot sa citesc tabela <b>'.$tb.'</b>('.mysql_error().' )');
   $row = mysql_fetch_assoc($result) or formDie("Ooops! Eroare neasteptata!");
   $maxrec = (integer) $row['nr'];
   if ($maxrec==0)
   {
      $sql = "INSERT INTO `".$tb."` (`id`, `info`) VALUES (1,'ID=1'),(2,'ID=2'),(3,'ID=3'),(4,'ID=4'),(5,'ID=5');";
      $result = mysql_query($sql,$oConn) or die('Nu pot sa inserez datele in tabela <b>'.$tb.'</b>('.mysql_error().' )');
      $maxrec = 5;
   }

   // cu id-ul selectat formam interogarea si retinem raspunsul in $mess pentru afisare
   $id = (integer) $_POST['s1'];
   $sql = "SELECT * FROM `".$tb."` WHERE id=".$id.";";
   $result = mysql_query($sql,$oConn) or die('Nu pot sa citest datele din tabela <b>'.$tb.'</b>('.mysql_error().' )');
     $mess = "In baza de date sunt ".$maxrec." inregistrari. Dvs. ati selectat :";
     while ($row=mysql_fetch_assoc($result))
     {
        $mess .= $row['info']."<br />";
     }   
   mysql_close($oConn);
}
else
{
   $mess = "Selectati o optiune si apasati butonul";
}
?>      
<html>
<head>
<script type="text/javascript">
function show()
{
   var ss= document.getElementById('s1');
   var len= ss.options.length;
   var str="";
   var j=0;
   for(var i=0;i<len;i++){     
      if(ss.options[i].selected == true)
      {         
      if(j == 0)
         str= ss.options[i].innerHTML;
      else
         str += '|' + ss.options[i].value;
      j++;
      }
   }
   var echoDiv = document.getElementById('id_echo');
    echoDiv.innerHTML = str;
}
</script>
</head>
<body>
<form name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
<select id="s1" name="s1" size=6 multiple onchange="show()" >
      <option value="1" selected> test1 </option>
      <option value="2"> test2 </option>
      <option value="3"> test3 </option>
      <option value="4"> test4 </option>
      <option value="5"> test5 </option>
   </select>
<div id="id_echo">1</div>
<input type="submit" name="submit" value=" OK " />
</form>
<h3><?php echo $mess; ?> </h3>
</body>
</html>


Mesaj Sâm Iul 24, 2010 2:47 am 
 Vezi profilul utilizatorului Trimite mesaj privat
cla_udiu
Average Member


Data înscrierii: 29/Iul/2008
Mesaje: 139
Locație: Constanta


 Răspunde cu citat (quote)  

Ce este aici este perfect functional , dar atunci cand selectez mai multe optiuni nu imi preia catid ="+id; mai multe optiuni , atunci cand selectez doar una merge perfect, am impresia ca trebuie creat un array pe undeva.

code:

var xmlHttp; 
function showsub(id){
  xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null){
      alert ("Browser does not support HTTP Request");
    return;
    }
 
  var url = "ajax.php"; //Fisier extern care contine interogare sql
  url = url + "?catid=" + id; //Aici preia id
  xmlHttp.onreadystatechange = stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function stateChanged(){
  if (xmlHttp.readyState ==4 || xmlHttp.readyState == "complete"){
    document.getElementById("subcateg").innerHTML=xmlHttp.responseText;
  }
}

function GetXmlHttpObject(){
  var xmlHttp=null;
  try{
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e){
    // Internet Explorer
  try {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e){
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  }
  return xmlHttp;
}



Problema este ca nu preia optiuni multiple , doar cate o optiuni.

Mesaj Sâm Iul 24, 2010 9:28 am 
 Vezi profilul utilizatorului Trimite mesaj privat
MihaiC
Senior Member


Data înscrierii: 14/Mai/2006
Mesaje: 1105
Locație: Navodari


 Răspunde cu citat (quote)  

Hint: daca selectezi o valoare, rezultatul e de ex. "2".
Daca selectezi mai multe, rezultatul e de ex. "2|4|5".

Poti folosi explode() in php
_________________
Nu da cu piatra-n geam, ca nu-i bicicleta ta!

Mesaj Sâm Iul 24, 2010 3:22 pm 
 Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google


Mie Dec 26, 2007 7:01 pm   
  Afișează mesajele pentru a le previzualiza:      

Forum:
Mergi direct la:  

Crează un subiect nou   Răspunde la subiect
Pagina 1 din 2

Du-te la pagina 1, 2  Următoare

Reguli forum:
Nu puteți crea un subiect nou în acest forum
Nu puteți răspunde în subiectele acestui forum
Nu puteți modifica mesajele proprii din acest forum
Nu puteți șterge mesajele proprii din acest forum
Nu puteți vota în chestionarele din acest forum

 

Subiectul anterior | Urmatorul subiect  >
Powered by phpBB © 2001,2007 phpBB Group
Varianta în limba româna: Romanian phpBB online community
Copyright © 2001-2010 PHP Romania Add PHPRomania to Google Add PHPRomania to Del.icio.us Add PHPRomania to Stumbleupon Add PHPRomania to Yahoo! Add PHPRomania to Digg Add PHPRomania to Blink
Ads: Parteneri: gazduire web | inregistrare domenii
Powered by Simplis