[ theH @ 20.07.2006. 20:28 ] @
Zdravo svima,

imam formu preko koje se upisuje/menja tekst u bazu. Tražio sam po netu i napravio sam nešto nalik ovoj opciji "Instant dodavanje:" koju ima ES ali mi to nije pravo rešenje.

Ono što sam uradio:

Code:

<script language="JavaScript" type="text/JavaScript">
function sendText(e, text)
{
  e.value += text
}
</script>


<a href="#upisi" onClick="sendText(document.formula.tekst, '<b>')">Pocni bold</a><br>
<a href="#upisi" onClick="sendText(document.formula.tekst, '</b>')">Zavrsi bold</a><br>

<form name="formula" action="menjaj.php" method="post">
<textarea rows="10" name="tekst" cols="50"></textarea><br>
<input type="Submit" value="Upiši">
</form>



Ali sada bi hteo da mogu da upišem i link na neki jednostavan način. Na nekim forumuma upisivanje bold slova se vrši preko prozorčeta koje iskoči pa se u njega upiše tekst koji treba da je bold i onda se on prebaci u textarea sa sve <b> ispred i </b> iza.

Ima li neko savet kako da napravim takvu varijantu pošto bih onda mogao lako i da ubacim link?
[ Br@nkoR @ 20.07.2006. 21:25 ] @
ovo je iz skripte koju koristim na es-u za quick reply, malo je izmenjena i pojednostavljena:
Code:

function insertLinkTest(where) {
  defaultValueURL = 'http://';
  defaultValueTITLE = 'link';
  var URL = prompt('Enter URL' ,defaultValueURL);
  var TITLE = prompt('Enter text' ,defaultValueTITLE);
  if (URL.length && TITLE.length && (URL != defaultValueURL)) {
    where.value = '<a href="' + URL + '">'+TITLE+'</a>';
  } else {
    return false;
  }
}


a html:
Code:

<a href="javascript:void(null)" onclick="insertLinkTest(document.formula.tekst)">test</a>
[ theH @ 20.07.2006. 21:28 ] @
To je to!

Hvala.
[ theH @ 22.07.2006. 18:50 ] @
Sada bih želeo da ubacim i putanju do neke fotografije koja je već učitana na server. Ako bih radio kao do sada morao bih da upisujem ime fotografije u polje. Da li postoji varijanta da dobijem drop-down listu svih fajlova iz određenog direktorijuma?
[ noviKorisnik @ 23.07.2006. 00:48 ] @
Da, ali ne korišćenjem JS. Tu listu treba da generiše serverska skripta.
[ theH @ 23.07.2006. 08:00 ] @
Mogu da dobijem drop-down listu koristeći php ali onda ne mogu da ubacim naziv iz liste u textarea.
Posto koristeći php mogu da dobijem niz sa nazivima sadržaja direktorijuma može li javascript da "preuzme" taj niz i izbaci ga tako da mogu da odaberem jedan od naziva?
[ Br@nkoR @ 23.07.2006. 09:40 ] @
Ti tu listu možeš i generisati pomoću serverske skripte, odnosno generisati html.

Ono što meni pada na pamet kako bi sve ovo moglo realizovati. npr.:
- korisnik klikne na link otvori se popup prozor, pri čemu odgovarajuća serverska skripta generiše listu, korisnik odabere odgovarajuću vrednost i klikne na odgovarajuće dugme ili može se upotrebiti i event onChange, zatim tu ulogu preuzima js, uzima selektovanu vrednost i prosleđuje je u odgovarajućem obliku u textarea box.
- korisnik klikne klikne na oggovarajući link, i pritom na istoj stranici pojavljuje se lista sa fajlovima. Ovo je moguće izvesti na više načina, time što ćeš u igru ubaciti XMLHttpRequest i pomoću njega vršiti komunikaciju sa serverskom skriptom i izvlačtiti podatke i kreirati listu, ti podaci mogu biti XML, JSON, običan tekst pri čemu ćeš članove niza razdvojiti odgovarajućim delimiterom ili pak to može biti i sam HTML kod koji ćeš jednostavno ubaciti u odgovarajući html element, za ovo prvo (xml, json, plain-text) potrebno je parsirati te podatke i od njih kreirati dropdown listu. Zatim drugi način da se ovo realizuje tako što ćeš, kada se stranica učita i učitati tu listu fajlova, ali nećeš ih prikazati odmah, već kada korisnik bude zatražio, tu možeš odmah kreirati taj html i sakriti ga pomoću css-a ili grenerisati js niz pa na korisnikov zahtev kreirati uz pomoć njega tu listu. Ukoliko ne želiš da koristiš XMLHttpRequest, za ovaj način možeš koristiti neki skriveni iframe ili u letu generisati *.js fajl i ubaciti ga u stranicu.

Vrednost selektovane dropdown liste uzimaš pomoću:
Code:

referencaDoListe.value
//ili
referencaDoListe.options[referencaDoListe.options.selectedIndex].value


Ukoliko nešto nije jasno pitaj. Najbolje bi bilo da pokušaš to sam da rešiš pa gde zapne da pokušamo da rešimo.

Mislim da je već bilo na ovom forumu pitanja kako kreirati dinamički dropdown (select) listu, potraži.

edit: malo da pomognem, evo link sa prve stranice ovog foruma
http://www.elitesecurity.org/t...amicno-kreiranje-SELECT-menija
[ theH @ 31.07.2006. 16:12 ] @
Ja sam to zamislio ovako: Pri učitavanju stranice php skript upisuje u tekst fajl sadržaj određenog direktorijuma (odnosno spisak učitanih fotografija). Zatim javascript ponudi drop-down listu koju čini sadržaj tog tekst fajla (recimo svaki novi red je nova opcija). Klikom na izbor iz liste on se upisuje u texarea.

Ne znam ništa o bilo kojoj opciji koju re Br@nkoR predložio za čitanje teksta pa mi se posle kraćeg googlovanja XMLHttpRequest učinio kao najbolje rešenje.


XMLHttpRequest

Našao sam ovaj skript koji čita tekst fajl i ispisuje ga.

Code:

<script language="javascript" type="text/javascript">
<!--

  // request variable
  var request_var;

  // Request object method wrapper function
  function request_object()
  {
    try
    {
      return new ActiveXObject('Msxml2.XMLHTTP');
    }
      catch(e)
      {
        try
        {
        return new ActiveXObject('Microsoft.XMLHTTP');
        }
          catch(e)
          {
          return new XMLHttpRequest();
          }
      }
  }

  // Call the request object method wrapper function
  request_var=request_object();
  
  if(!request_var)
  {
    alert("Your Web browser does not support the XMLHttpRequest object.");
  }

  function load()
  {
    if(request_var.readyState==4)
    {
    document.getElementById('elements_id').innerHTML=request_var.responseText;
    }
  }

  function call()
  {
    if(request_var)
    {
    d=document;
    request_var.open("GET","textfile.txt",true);
    request_var.onreadystatechange=load;
    request_var.send(null);
    }
  }

//-->
</script>

<div id="elements_id"></div> 

<a onclick="call()" href="#">XMLHttpRequest</a>


Ne uspevam da rezultat ispišem u drop-down listu. Da li treba da dopišem nešto u funkciju call posle ovoga ili da napišem novu funkciju koja pravi listu?

Code:

  function call()
  {
    if(request_var)
    {
    d=document;
    request_var.open("GET","textfile.txt",true);
    request_var.onreadystatechange=load;
    request_var.send(null);
    ovde_nešto.value
    }
  }


Drop-down->textarea

Gledao sam šta ima na forumu, svugde se opcije iz liste definišu unapred, pa na u odnosu na zahtev ispisuje jedan ili drugi rezultat u drugu drop down listu.

Ipak, pronašao sam skript koji na osnovu izbora iz liste upisuje u textarea ali i kod njega je sve definisano unapred.

Code:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">

<!-- Original:  Stephanie M. Clarkson  ([email protected]) -->
<!-- Web Site:  http://www.sleepingcat.com -->
<!-- Distributed by http://www.hypergurl.com

<!-- Begin       
var messages = new Array(6); 
messages[0] = "";
messages[1] = "Have you ever seen anything like this before? This is a great javascript which is easy to install. Any problems just give us an email and don't forget to include the url of the page you are doing the install. Have fun!";
messages[2] = "Can you imagine how you could use it on your site?";       
messages[3] = "It's great for sharing lots of information.";
messages[4] = "And doesn't take up much space!";
messages[5] = "So, get the code and put it on your site!";
function messageReveal() {
var messageindex = document.messageForm.messagePick.selectedIndex
document.messageForm.messageField.value = messages[messageindex];
}
// End -->
</SCRIPT></head>

<body>
<form name="messageForm"> 
<select name="messagePick" OnChange="messageReveal()"> 
<option value="0">The Menu Message
<option>Seen this before? 
<option>Possible uses?
<option>Shares Information
<option>Saves space
<option>Get the code!
</select>
<br><p>
    <textarea name="messageField" rows=6 cols=50 wrap=virtual></textarea> 
</form>
</body>
</html>


[ Br@nkoR @ 03.08.2006. 11:21 ] @
Funkcija load() će biti pozvana po završetku zahteva, tačnije ona će biti pozvana svaki put pri promeni readyState, a tebi je potrebno kada readyState bude imao vrednost 4.

Dakle da ponovim ti možeš html generisati pomoću php-a.
Dakle napravi php skriptu koja će čitati listu fajlova i odmah štampati dropdown listu, nešto kao npr.
Code:

$files = array('file1', 'file2', 'file2');
$output = '<select>';
for($i=0,$len=count($files); $i<$len; $i++) {
  $output = '<option value="'.$files[$i].'"'>'.$files[$i].'</option>
}
$output .= '</select>';
echo $output;

Umesto putanje do tekstualnog fajla textfile.txt ti stavi putanju do php fajla sa tvojom skriptom.
I klikni na link XMLHttpRequest.
[ theH @ 17.08.2006. 08:39 ] @
Br@nkoR:
Code:
Dakle da ponovim ti možeš html generisati pomoću php-a.


Aaaa, shvatam sada šta si hteo reći.

Reših problem, naravno, javio se drugi, ali to je već stvar za drugu temu.

Hvala na savetima!

[ mod ] nK - čini mi se da nije neki problem koji puno odstupa od ove teme, pa sam to spojio ... taman i da testiram kako funkcioniše premeštanje poruka :-)

[Ovu poruku je menjao noviKorisnik dana 17.08.2006. u 13:28 GMT+1]
[ theH @ 17.08.2006. 08:43 ] @
Imam skript (našao sam ga preko Googla) koji rezultate drop-down liste upisuje u textarea. Problem je što pri izboru iz liste obriše sadržaj iz textarea.

Kako da nateram skript da izbor iz liste dopiše na kraju?

Code:

<form action="some-script.pl" onsubmit="return check (this)">

<select onchange="this.form.joe.value = this[selectedIndex].text">
<option>Fee</option>
<option>Fie</option>
<option>Foe</option>
<option>Fum</option>
</select>

<textarea name="joe"></textarea>

</form>
[ noviKorisnik @ 17.08.2006. 09:17 ] @
Staviš + ispred = ... pa onda dobiješ operator += koji dodaje vrednost na postojeću.