Autor Zpráva
Pinqui
Profil
takovýto je script:


<script language="javascript" type="text/javascript">
var vystup = null;
var room = '<?php print $_GET["rid"] ?>';
var id = '';
function repeat(akce,last) {
setTimeout("stahniData('"+akce+"','"+last+"')",10000);
id = last;
}
function stahniData(akce, id) {
// odmazeme stary skript, pokud existoval
vystup = window.read.document.getElementById('msgBox');
var hlavicka = document.getElementsByTagName('head')[0];
var dataLoader = document.getElementById('scriptLoader');
if(dataLoader) hlavicka.removeChild(dataLoader);

// vytvorime novy element script
var script = document.createElement('script');
script.id = 'scriptLoader';
script.src = 'javascript-rpc.php?akce='+akce+'&room='+room+'&id='+id+'&r='+Math.ran dom();
// POZOR, DULEZITE!! Skript musime vlozit do stranky pomoci DOM - appendChild()
// Ihned po vlozeni prohlizec stahne skript a spusti jej
var x = document.getElementsByTagName('head')[0];
x.appendChild(script);

return false;
}

function vypisText(txt) {
// nejsnazsi cesta, vlozime novy kod ke staremu na konec
vystup.innerHTML = txt+vystup.innerHTML;
while(vystup.childNodes[21]) vystup.removeChild(vystup.childNodes[21]);
return false;
}

function chyba(txt) {
// obycejny alert s hlaskou
alert(txt);
return true;
}

function vymazData() {
// v jednoduchem cyklu smazeme vsechny elementy v prvku vystup
while(vystup.hasChildNodes()) vystup.removeChild(vystup.childNodes[0]);
return false;
}
</script>



a jde mi o pár věcí, zaprvé když mám výběr z mysql textu do funkce
vypisText('<span class= "barva" >Honza: Kuba: Ahoj</span><span class= "barva" >Kuba: Honza: Nazdááár</span>');
toto je krátkej příklad, tak jak to udělat když budu chtít smazat pak jen texty co poslal Honza, což znamená že za <span class== "barva">je první jméno toho co psal někomu.

z horního scriptu je vidět že se ty texty přičítají pouze k již existujícím, ale nikde jinde kromě js proměnné a mysql neexistují. A druhý dotaz, někdo mi psal že by se to mělo oddělovat například \n. nicméně když to udělám tak mi ta funkce vypisText nefunguje. Můžete mi někdo prosím poradit? děkuji
fuckin
Profil *
prvni otazku nechapu... U druhe otazky ukaz priklad kde je problem..
Pinqui
Profil
fuckin
Příklad chatu.. píšou si dva lidi

Honza: Pepa: Jsi čů*ák
Pepa: Honza: Ahoj
Honza: Pepa: Ahoj

abych nebyl sprostej, tak teď psal sprostá slova což je dejme tomu v místnosti zakázáno, tak ho vyhodím a chci smazat co napsal.. je blbost mazat jen tu jednu větu, takže jak smazat všechno co psal Honza...

druhý příklad:
$text= "";

mysql(vyber);
while(vyberu neco){
$text .= $vyber['text'];
}

return "vypisText('$text')";

//takto to funguje, ale následovně nee

$text= "";

mysql(vyber);
while(vyberu neco){
$text .= $vyber['text']."\n";
}

return "vypisText('$text')";
peta
Profil
Pinqui
Problem je, ze jsi s tim uz nepocital predem.
Chyba, ze do JS fora davas PHP kod. Nemame PHP zdroj, takze je to bezcenne cele.

Prvni problem je, jak oddelujes radky? Ja treba davam radky do DIV, cimz seznam radku ziskam z oblasti s id=radky
radky = document.getElementById('radky').getElementsByTagName('DIV');
alert(radky);
v tvem pripade pak jmena ziskas jako nulty span nulteho radku
'<span class= "barva" >Honza: Kuba: Ahoj</span>'
jmena = radky[0].getElementsByTagName('SPAN')[0].innerHTML;
alert(jmena);
a pokud muzes zarucit, ze se ve jmenu v zadnem pripade nevyskytne ':', pak prvni jmeno ziskaz jako
jmena = (jmena.split(':'))[0];

Cele tohle reseni je pro kocku. Daleko lepsi je, kdyz budes pracovat s polem.
radky = [
['123','Honza','Kuba','text'],
['124','Honza','Kuba','text'],
['125','Honza','Kuba','text'],
// id, kdo, komu, text
];
function vypis_radky()
{...}
alert(radky[0]);
nebo
radky = [
'123|Honza|Kuba|text',
'123|Honza|Kuba|text',
'123|Honza|Kuba|text',
];
alert(radky[0]);
alert(radky[0].split('|'));
ale musis si pohlidat, aby se v textu a ve jmene nahradil znak '|' v textu nahradil odpovidajici entitou, pro @ je to @ (php str_replace)
Tohle reseni je lepsi, protoze mas vse uz v poli a jestli chces zobrazit jen radky od honzy, staci filtrovat podle sloupce [1]
Pinqui
Profil
takže když bych pak vybral texty tak by vypadali nějak takto:



<div id='15'>Kdo: Komu: Text</div>
<div id='14'>Kdo: Komu: Text</div>
<div id='13'>Kdo: Komu: Text</div>
<div id='12'>Kdo: Komu: Text</div>
<div id='11'>Kdo: Komu: Text</div>
<div id='10'>Kdo: Komu: Text</div>

atd..přičemž to bude rozdělený ze 4 polí? // id, kdo, komu, text

teď ještě dotaz.? jak to dostanu do takovéhoto pole. Když pracuji s ajaxem

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0