Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Jquery] Podstawianie wartośc w pole input - problem, działa tylko w jedną stronę..?
marecki86
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


Witam
Pewnie jest to proste jak drut ale potrzebuję pomocy.
Próbuję uzupełnić pole <input> wartością klikniętej komórki w tabeli. Poniżej kod
  1. $(document).ready(function(){
  2. $('.komorka').click(function(){
  3. $('.komorka').css('background-color', '#F5F5F5'); $(this).css('background-color', '#40E0D0'); $(this).html($("#symbol1").val()); return true; });
  4. });
  5.  

Każda komórka tabeli jest
  1. <td class="komorka"></td>

Oraz input:
  1. <input type="text" id="symbol1" name="symbol1" value="'1111'"/>


W takiej postaci kolor się zmienia, wartość z input wskakuje w każdą komórkę. Ładnie - ale jak przerobić żeby to po kliknięciu w komórkę wartość komórki wskoczyła do pola input? Jeśli zrobię identycznie zamieniając współczynniki:
  1. $("#symbol1").html($(this).val());

to nie działa prawidłowo - pole input robi się puste. Jak to obejść?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Orzeszekk
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

Ostrzeżenie: (0%)
-----


Moze zamiast się meczyć, użyjesz gotowego color pickera?

np ten: http://jscolor.com/

myślę że szkoda czasu na męczenie sie z javascriptami.

moze zamiast wpisywac do inputa w html sprobuj przypisac wartosc do innerText.

ściągnij mozilla firebuga/opera dragonfly/ F12 w IE, ustaw breakpoint na linijke której nie jesteś pewien i obejrz sobie pod debugerem jakie wartosci mają te zmienne. Pomoc ci moze tez rozpisanie tych wyrażen na pojedyncze instrukcje

$("#symbol1").html($(this).val());

->

var input = $("#symbol1");
var valueOfCelll= $(this).val();
input.html(valueOfCell);

prędzej zobaczysz gdzie ci coś ginie.

Ostatecznie może spróbuj

$("#symbol1").val($(this).val()); (IMG:style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
marecki86
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


Cytat(Orzeszekk @ 21.11.2011, 23:27:45 ) *
moze zamiast wpisywac do inputa w html sprobuj przypisac wartosc do innerText.

ściągnij mozilla firebuga/opera dragonfly/ F12 w IE, ustaw breakpoint na linijke której nie jesteś pewien i obejrz sobie pod debugerem jakie wartosci mają te zmienne. Pomoc ci moze tez rozpisanie tych wyrażen na pojedyncze instrukcje

$("#symbol1").html($(this).val());

->

var input = $("#symbol1");
var valueOfCelll= $(this).val();
input.html(valueOfCell);

prędzej zobaczysz gdzie ci coś ginie.

Ostatecznie może spróbuj

$("#symbol1").val($(this).val()); (IMG:style_emoticons/default/questionmark.gif) ?


Próbowałem i tak i tak - nadal nie wpisuje wartości do input po kliknięciu - jedynie robi się puste. Ma ktoś jeszcze jakieś pomysły..?
Go to the top of the page
+Quote Post
gorden
post
Post #4





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


$('#symbol1').val($(this).html());
Go to the top of the page
+Quote Post
marecki86
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


Cytat(gorden @ 22.11.2011, 17:59:49 ) *
$('#symbol1').val($(this).html());


Wow. Wielkie dzięki - działa jak trza (IMG:style_emoticons/default/thumbsupsmileyanim.gif) Wiedziałem że byłem blisko... (IMG:style_emoticons/default/tongue.gif) Dzięki

Cytat(gorden @ 22.11.2011, 17:59:49 ) *
$('#symbol1').val($(this).html());


Jednak mam jeszcze pytanie - czy można jakoś zrobić tak żebym kliknął w dowolną komórkę
  1. <td class="komorka"></td>
a do
  1. <input id="symbol1"/>
żeby zawsze wskakiwała wartość np z pierwszej komórki danego wiersza tabeli...?
Go to the top of the page
+Quote Post
gorden
post
Post #6





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


$('#symbol1').val($(this).parent('tr').children('td').first().html());

Ten post edytował gorden 22.11.2011, 22:12:38
Go to the top of the page
+Quote Post
marecki86
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


Cytat(gorden @ 22.11.2011, 22:10:00 ) *
$('#symbol1').val($(this).parent('tr').children('td').first().html());


Napisałem tak jak mi podałeś - dokładnie i...nie działa.. (IMG:style_emoticons/default/sad.gif) Konkretniej nie reaguje na kliknięcie (nic się nie dzieje)... Jakieś pomysły..?
Go to the top of the page
+Quote Post
gorden
post
Post #8





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


mi jakoś działa w prowizorycznej tabeli i Twoim kodem.. może pokaż strukturę tabeli, ewentualnie kod live?
Go to the top of the page
+Quote Post
marecki86
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


Cytat(gorden @ 23.11.2011, 22:05:36 ) *
mi jakoś działa w prowizorycznej tabeli i Twoim kodem.. może pokaż strukturę tabeli, ewentualnie kod live?


CODE
$(document).ready(function(){
$('.komorka').click(function(){
$('#symbol1').val($(this).parent('tr').children('td').first().html());
$('.komorka').css('background-color', '#F5F5F5');
$(this).css('background-color', '#40E0D0');
return true; });
$("#dostawcy").click(function(){ $("#dostawca1").show();
});

<?php
$opis=$_POST['opis'];
require '../conn/connect.php';
$kar = mysql_query('show columns from kartoteka');
if ($opis){
$list=mysql_query("select * from kartoteka where opis like '$opis' ");
}
else{
$list=mysql_query("select * from kartoteka"); }
?>

<div id="wynik" style="background-color: #F5F5F5; width: auto; height: 250px; overflow: scroll;">
<table id="tabela1" border="1" style="empty-cells: show">
<tr>
<td>*</td>
<?php
$kar = mysql_query('show columns from kartoteka');
while ($kar2 = mysql_fetch_row($kar))
{
if ($kar2[0]=='dostawcy'){}
else { echo '<td>'.$kar2[0].'</td>';}}
echo '</tr>';
$max=mysql_num_fields($list);
while ($list2 = mysql_fetch_row($list))
{ echo '<tr>';
for ($i=0;$i<$max-1;$i++){ echo'<td class="komorka">'.$list2[$i].'</td>'; }
echo '</tr>';
} ?>
</table>
</div>


<div id="dostawca1" style="display: none"><input type="text" id="symbol1" name="symbol1" value=""/></div>


Tak to wygląda - wiem TROCHĘ to chaotyczne (IMG:style_emoticons/default/smile.gif) Mój zamiar jest taki że jak kliknę w obojętnie którą komórkę to żeby do input "symbol1" wskakiwała zawsze wartość z DRUGIEJ komórki danego wiersza. Wszelkie poprawki w tym moim "kodzie" dozwolone (IMG:style_emoticons/default/wink.gif) Będę wdzięczny za pomoc:)


Czy ktoś jest w stanie pomóc mi w tej kwestii...? (IMG:style_emoticons/default/sciana.gif)

Hej. Przerobiłem Twój kod na coś takiego:
CODE
$(#symbol1).val($(this).parent('tr').children('td:nth-child(1)').html())


i działa tak jak chciałem. Może komuś się przyda. Dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 12:30