Někdo ochotnej, kdo by mi napsal JS skriptík?
Potřeboval skript, který by mi náhodně obměňoval proměnnou v urřitém řetězci, ale aby to rozmezí proměnné mohlo být různě. Příklad:
V řetězci <a target="_blank" href="http://adersa.cz/ID_smile_add=PROMĚNNÁ"><img border="0" src="http://adresa.cz/PROMĚNNÁ.gif"></a> By se různila porměnná s tím že bych mohl zadat například od kolika do kolik a a opakovaně. Například: 1-2514 pak 3214-4548. Prostě aby to vybíralo náhodně ze všech.... Předem díky...
Princip náhodné hodnoty v JS je takovýto:
<script type="text/javascript">
var c = 0;
function nahodnecislo() {
c = Math.random(0);
// - 0 je kvuli konverzi retezce na cislo
c = c * ((document.form1.doc.value - 0) - (document.form1.odc.value - 0) + 1);
c = Math.floor(c);
document.form1.vysledek.value = c + (document.form1.odc.value - 0);
}
</script>
<form name="form1">
<label>Od:<input type="text" id="odc" size="4" value="0" /></label>
<label>Do:<input type="text" id="doc" size="4" value="0" /></label>
<input type="button" onclick="nahodnecislo();" value="Generovat" />
<label>Výsledek:<input type="button" id="vysledek" value="" /></label>
</form>
Já bych přesněji potřeboval aby skript rovnoul zapisoval proměnnou do řetězce. Přesněji mám čtyři řetězce, kde jsou normální html tagy s adresami, kde potřebuji aby se v v jednom celém řetězci změnila jedna proměnná. Zároveň potřebuji, abych ty proměnné mohl zadat v různém rozmezí.
Příklad:
<!--Řetězec 1 start-->
<a target="_blank" href="http://adersa.cz/ID_smile_add=PROMĚNNÁ1"><img border="0" src="http://adresa.cz/PROMĚNNÁ1.gif" alt="smajl číslo PROMĚNNÁ1></a>
<!--Řetězec 1 end-->
<!--Řetězec 2 start-->
<a target="_blank" href="http://adersa.cz/ID_smile_add=PROMĚNNÁ2"><img border="0" src="http://adresa.cz/PROMĚNNÁ2.gif" alt="smajl číslo PROMĚNNÁ2></a>
<!--Řetězec 2 end-->
A ještě dvakrát. Kde je PROMĚNNÁ1-4 bude to číslo, ale v jednom řetězci vždy stejné a odlišné od jiných řetězců. Předem díky za jakoukoliv reakci.
<script type="text/javascript">
var c = new Array(0,0,0,0,0);
var odc = new Array(0,1,1000,3500,70000);
var doc = new Array(0,10,5000,4000,70010);
var r1 = '<a target="_blank" href="http://adresa.cz/ID_smile_add=';
var r2 = '"><img border="0" src="http://adresa.cz/';
var r3 = '.gif" alt="smajl číslo ';
var r4 = '"></a>';
for (var i = 1; i < c.length; i++) {
c[i] = Math.random(0);
// - 0 je kvuli konverzi retezce na cislo
c[i] = c[i] * (doc[i] - odc[i] + 1);
c[i] = Math.floor(c[i]);
c[i] = c[i] + odc[i];
document.write(r1 + c[i] + r2 + c[i] + r3 + c[i] + r4 + "\n");
}
</script>
Ano takhle jsem to myslel, akorát jsme to myslel jinak s tím rozmezím. Potřebuji, aby byly pro všechny řetězce stejné a abych si tam mohl nastavit třeba od 1 do 1245, od 1387 do 6464 a tak... Jinak už tak díky za to všechno...
Tak pomůže mi stím někdo? Plosím... :o(
Aha, já myslel (pochopil), že už to zvládneš...
<script type="text/javascript">
// cislo
var c = 0;
// od
var odc = 1;
// do
var doc = 10;
// casti retezce
var r1 = '<a target="_blank" href="http://adresa.cz/ID_smile_add=';
var r2 = '"><img border="0" src="http://adresa.cz/';
var r3 = '.gif" alt="smajl číslo ';
var r4 = '"></a>';
// nahodne cislo
c = Math.random(0);
c = c * (doc - odc + 1);
c = Math.floor(c);
c = c + odc;
for (var i = 1; i <= 4; i++)
document.write(r1 + c + r2 + c + r3 + c + r4 + "\n");
</script>
Já jsem na JS fak levej... Já to myslel jinak... :o)
Potřeuji zvolit rozsahy proměnné (např.: 1-546, 568-1278, 1600-5000) a ty čtyři řetězce: Aby bral tu proměnnou z těch všech rozsahů, ale aby byla tam proměnná v každém řetězci jiná...
Předem díky!
Nijak zvlášť jsem to ale neodlaďoval:
<script type="text/javascript">
// cisla
var c = new Array(0,0,0,0,0);
// od
var odc = new Array(0,1,1000,9000,70000);
// do
var doc = new Array(0,10,5000,19000,75010);
// rozmezi
var roz = new Array(0,0,0,0,0);
// soucet rozmezi
var soucet = 0;
// retezec
var r1 = '<a target="_blank" href="http://adresa.cz/ID_smile_add=';
var r2 = '"><img border="0" src="http://adresa.cz/';
var r3 = '.gif" alt="smajl číslo ';
var r4 = '"></a>';
// cyklus retercu
for (var i = 1; i < c.length; i++) {
// nahodne cislo
c[i] = Math.random(0);
// soucet vsech rozmezi ...
soucet = 0;
for (var j = 1; j < odc.length; j++) {
roz[j] = (doc[j] - odc[j]) + 1;
soucet = soucet + roz[j];
}
c[i] = Math.floor(c[i] * soucet);
// ... a prepocet do jednotlivych rozmezi
soucet = 0;
for (var j = 1; j < odc.length; j++) {
soucet = soucet + roz[j];
if (c[i] < soucet) {
c[i] = (c[i] - (soucet - roz[j])) + odc[j];
break;
}
}
document.write(r1 + c[i] + r2 + c[i] + r3 + c[i] + r4 + "\n");
}
</script>