Preluare date din link / Adaugare cod HTML in casuta input

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
alexinio3d
Mesaje:96

Preluare date din link / Adaugare cod HTML in casuta input

Salutare.
Am nevoie de ajutorul vostru pentru 2 probleme .
1. Cum as putea sa culeg date din link ?
Adica am urmatorul link:

Cod: Selectaţi tot

siteult-tau.ro/server.php?s=1&banner=1
Si as vrea sa folosesc ce este dupa acea bucata 's=1' in linkul care se va creea dupa alegerea din lista .

2. Cum pot face sa-mi ramana intact codul html in input ?
Am incercat intr-un fel, dar i-mi arata precum se vede in imaginea de la adresa asta:
imageshack.us/photo/my-images/825/is7m.png/

Codul e urmatorul :

Cod: Selectaţi tot

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<!-- Link-uri -->
	<link href="../css/bootstrap.css" rel="stylesheet" media="screen">
	<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
<!-- Scripting -->
	<script src="../js/bootstrap.min.js"></script>
	<script src="../js/jquery.js"></script>
</head>
<body>
<div></div><br />
<b>Banner : </b>
<select id="sweets" name="sweets">
<option selected="selected">default_small</option>
<option>default_small_blue</option>
<option>default_small_green</option>
<option>default_small_red</option>
<option>default_small_orange</option>
</select>
<script>
// Etrage date din adresa URL. De la: https://marplo.net/javascript/
// Returneaza un obiect cu parti din adresa URL:
// protocol, nume domeniu (fara 'www'), port, cale paagina, nume fisier, partea de cautare si hash
function urlData(url) {
  // obiect pt datele ce vor fi returnate
  var redata = {protocol: '', domain: '', port: 80, path: '', file: '', search: '', hash: ''};

  // creaza un element link si adauga adresa url in atributul "href"
  var a_elm  = document.createElement('a');
  a_elm.href = url;

  // adauga datele din URL in obiectul redata, si-l returneaza
  redata.protocol = a_elm.protocol.replace(':', '');
  redata.domain = a_elm.hostname.replace('www.', '');
  if(a_elm.port != '') redata.port = a_elm.port;
  redata.path = a_elm.pathname;
  if(a_elm.pathname.match(/[^\/]+[\.][a-z0-9]+$/i) != null) redata.file = a_elm.pathname.match(/[^\/]+[\.][a-z0-9]+$/i);
  redata.search = a_elm.search.replace('?', '');
  redata.hash = a_elm.hash.replace('#', '');
  return redata;
}

// Test
var url = window.location;
var urlOb = urlData(url);
$("select").change(function () {
var str = "";
$("select option:selected").each(function () {
str += "<img src=\"http://www." + urlOb.domain + "/lgsl_files/images/source/" + $(this).html() + ".png\" /><br /><input class=\"input-xxlarge\" readonly='readonly' size='55' onclick='select()' type=\"text\" value=\"<a href=\"http://www."+ urlOb.domain +"/server.php?s=1\" target=\"_blank\" ><img src=\"http://www."+ urlOb.domain +"/lgsl_files/lgsl_image.php?s=1&type=small\" /></a>\" />";
});
$("div").html(str);
})
.change();
</script>
</body>
</html>
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje:4343
Salut
Functia din cod, urlData() returneaza un obiect cu date din adresa URL, printre care, elementul "search" contine datele de dupa "?" pana la eventual "#". Cu split('&') poti separa intr-un array acele date.
Exemplu:

Cod: Selectaţi tot

<script>
// Etrage date din adresa URL. De la: https://marplo.net/javascript/
// Returneaza un obiect cu parti din adresa URL:
// protocol, nume domeniu (fara 'www'), port, cale paagina, nume fisier, partea de cautare (search) si hash
function urlData(url) {
  // obiect pt datele ce vor fi returnate
  var redata = {protocol: '', domain: '', port: 80, path: '', file: '', search: '', hash: ''};

  // creaza un element link si adauga adresa url in atributul "href"
  var a_elm  = document.createElement('a');
  a_elm.href = url;

  // adauga datele din URL in obiectul redata, si-l returneaza
  redata.protocol = a_elm.protocol.replace(':', '');
  redata.domain = a_elm.hostname.replace('www.', '');
  if(a_elm.port != '') redata.port = a_elm.port;
  redata.path = a_elm.pathname;
  if(a_elm.pathname.match(/[^\/]+[\.][a-z0-9]+$/i) != null) redata.file = a_elm.pathname.match(/[^\/]+[\.][a-z0-9]+$/i);
  redata.search = a_elm.search.replace('?', '');
  redata.hash = a_elm.hash.replace('#', '');
  return redata;
}

// Utilizare urlData()
var url = window.location;
var urlOb = urlData(url);
var dataurl = urlOb.search.split('&');

// Daca URL e : "siteult-tau.ro/server.php?s=1&banner=1" , dataurl[0] are: s=1 , iar dataurl[1] are: banner=1
// Test
alert(dataurl[1]);

// Pentru a prelua valoarea de dupa "=" de la 'banner=1'
var baner = dataurl[1].split('=');
// baner[1] contine valoarea de dupa '=' (1)
// Test
alert(baner[1]);
</script>
2. La adaugarea codului html la "value" din casuta input din codul tau e problema la ghilimele. Incearca asa:

Cod: Selectaţi tot

$("select option:selected").each(function () {
  var codhtml = '<a href="http://www.'+ urlOb.domain +'/server.php?s=1\" target="_blank" ><img src="http://www.'+ urlOb.domain +'/lgsl_files/lgsl_image.php?s=1&type=small" /></a>';
  str += '<img src="http://www.' + urlOb.domain + '/lgsl_files/images/source/' + $(this).html() + '.png" /><br /><input class="input-xxlarge" readonly="readonly" size="55" onclick="select()" type="text" value=\''+ codhtml +'\' />';
});
- Inlocuiesti in variabila "codhtml" ce date sa fie adaugate dupa select, la "value" in casuta input.

Subiecte similare