Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: onClick

Parašė sampas· 2008 Kov. 19 16:03:58
#1

Sveiki,
turiu tokią problemą ir nerandu kaip ją išspręst.
Štai pvz.: turiu tokį kodą:
<input type='button' value='lentele' class='button' style='width:45px' onClick=\"insertText('body', '<table class=\'lentele\'><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table>');\">



ir ką reikia įterpti(gal kaip nors suskirstyti), kad į Textarea įkeltų štai taip:
<table class='lentele'>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>



Redagavo sampas· 2008 Kov. 19 16:03:19

Parašė kiskiss· 2008 Kov. 19 17:03:40
#2

Reikia paprasčiausiai parašyti javascript'o kodą.

Parašė ramon· 2008 Kov. 19 17:03:41
#3

Veiks jeigu pridesi script`a arba include :);)

#1.
echo "<script>
function insertText(elname, what) {
   if (document.forms['inputform'].elements[elname].createTextRange) {
      document.forms['inputform'].elements[elname].focus();
      document.selection.createRange().duplicate().text = what;
   } else if ((typeof document.forms['inputform'].elements[elname].selectionStart) != 'undefined') { // for Mozilla
      var tarea = document.forms['inputform'].elements[elname];
      var selEnd = tarea.selectionEnd;
      var txtLen = tarea.value.length;
      var txtbefore = tarea.value.substring(0,selEnd);
      var txtafter =  tarea.value.substring(selEnd, txtLen);
      var oldScrollTop = tarea.scrollTop;
      tarea.value = txtbefore + what + txtafter;
      tarea.selectionStart = txtbefore.length + what.length;
      tarea.selectionEnd = txtbefore.length + what.length;
      tarea.scrollTop = oldScrollTop;
      tarea.focus();
   } else {
      document.forms['inputform'].elements[elname].value += what;
      document.forms['inputform'].elements[elname].focus();
   }
}
</script>";




#2.

echo "<script type='text/javascript' src='".INCLUDES."jscript.js'></script>";



#3. Nauduokis subheader.php

Redagavo kiskiss· 2008 Kov. 19 17:03:42

Parašė sampas· 2008 Kov. 19 18:03:58
#4

Jeigu gerai supratau, tai dariau štai taip:
<tr>\n<td class='tbl'></td>\n<td class='tbl'>


<script>
function insertText(elname, what) {
   if (document.forms['inputform'].elements[elname].createTextRange) {
      document.forms['inputform'].elements[elname].focus();
      document.selection.createRange().duplicate().text = what;
   } else if ((typeof document.forms['inputform'].elements[elname].selectionStart) != 'undefined') { // for Mozilla
      var tarea = document.forms['inputform'].elements[elname];
      var selEnd = tarea.selectionEnd;
      var txtLen = tarea.value.length;
      var txtbefore = tarea.value.substring(0,selEnd);
      var txtafter =  tarea.value.substring(selEnd, txtLen);
      var oldScrollTop = tarea.scrollTop;
      tarea.value = txtbefore + what + txtafter;
      tarea.selectionStart = txtbefore.length + what.length;
      tarea.selectionEnd = txtbefore.length + what.length;
      tarea.scrollTop = oldScrollTop;
      tarea.focus();
   } else {
      document.forms['inputform'].elements[elname].value += what;
      document.forms['inputform'].elements[elname].focus();
   }
}
</script>
<input type='button' value='lentele' class='button' style='width:45px' onClick=\"insertText('body', '<table class=\'lentele\'><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table>');\">
</td>

</tr>\n";




, tačiau taip padarius nesigavo. Gal ką ne taip darau?

Parašė ramon· 2008 Kov. 19 18:03:58
#5

Kur tu sita koda rasai, jei ka pasinauduok #2

Parašė sampas· 2008 Kov. 19 21:03:19
#6

Jūs turbūt mane ne taip supratot, man reikia, kad input'ą
<input type='button' value='lentele' class='button' style='width:45px' onClick=\"insertText('body', '<table><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table><table><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table>');\">



suskaldytų štai taip:
<table class='lentele'>
<tr>    <---Iš naujos eulutės
<td></td>    <---Iš naujos eulutės
<td></td>    <---Iš naujos eulutės
</tr>    <---Iš naujos eulutės
<tr>    <---Iš naujos eulutės
<td></td>    <---Iš naujos eulutės
<td></td>    <---Iš naujos eulutės
</tr>    <---Iš naujos eulutės
</table>    <---Iš naujos eulutės



, tai yra jei aš rašyčiau <br> tai man jį ir įdėtų, o man reikia, kad jo nedėtų. Visą tai aš noriu pasidaryti dėl to, kad nebūtų viena didelė eilutė, o viskas būtų patogiai suskirstyta. Ir beje gal yra koks paprastesnis būdas, kuriam nereikėtų Javascript, nes man reikia tik įdėti tekstą, o ne apjungt.

Parašė ramon· 2008 Kov. 19 22:03:35
#7

Netestinau bet pamegink toki buda:

$a = "<table class='lentele'>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>";





Ir poto panauduok kintamaji $a :
<input type='button' value='lentele' class='button' style='width:45px' onClick=\"insertText('body', '$a');\">



Parašė sampas· 2008 Kov. 19 22:03:38
#8

Deja toks parašymas tinka, kai kintamajam priskiriama viena eilutė, parašius keliose eilutėse input'as nebeveikia. Beje dėkui, kad padedi ;)