469,320 Members | 2,200 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,320 developers. It's quick & easy.

Js function to change respecive cell value onchange selected value of dropdown value

Hi. I have a javascript function to change the value of the cell on chnage event of a dropdown list.My code is workin but the problem is that the value of the cell is chaning but not respective to the selected dropdown list( as there are 15 dropdown list and 15 cells), but only on the 1st cell. So need some identification for each cell. Can anyone help me just refine my code.

Expand|Select|Wrap|Line Numbers
  1. <script type="text/javascript"> 
  2. function displaytaskid(ths) { 
  3.     var id= ths.options[ths.selectedIndex].value;  
  4.     alert (id);
  5.     document.getElementById('task_id1').innerHTML=id;
  6. </script>
Expand|Select|Wrap|Line Numbers
  1. <?php for($count; $count <15; $count++)
  2. {?>
  3.  
  4.     <tr>
  5.         <td id ="task_id1[]"></td>
  6. <td name = "task_id[]"><select name="task_id" id="dropdown" onchange="displaytaskid(this)">
  7.     <option value=""></option>5
  8.     <?php
  9.  
  10.       while($lp_row = pg_fetch_assoc($res2))
  11.     {
  12.           $val = $lp_row["task_id"];
  13.           $caption = $lp_row["task_description"]; ?>
  14.         <option value="<?php echo $val ?>"><?php echo $caption ?></option>
  15.         <?php }  ?></select>
  16.         </td>
Sep 30 '09 #1
16 4668
Dormilich
8,651 Expert Mod 8TB
of course you have to give out unique ids to get it working.
Sep 30 '09 #2
Yeahh Dormi I know tht. But I really dnt knw how to change my code to do that.
Sep 30 '09 #3
Dormilich
8,651 Expert Mod 8TB
what about
Expand|Select|Wrap|Line Numbers
  1. echo "<td id=\"task_id_$count\">";
?

besides, you don’t even have to use ids, since the select and the td have the same parent.
Sep 30 '09 #4
THanks Dormi, sounds a good idea.. but then how to identify it by the js function(what change I need to do to my JS function) to identify each cell with the respective change in the dropdown list
Sep 30 '09 #5
Dormilich
8,651 Expert Mod 8TB
how much do you know about DOM?

(you have 2 td per tr?)
Sep 30 '09 #6
yes there are 2 td per tr.. In one td there is the cell where i want my value to be changed and in 2nd is the actual dropdown list. which is trigerrin the js function. A little bit about DOM. Whenevery this JS bit comes in my code i get confused as I m really not good at it.
Sep 30 '09 #7
Dormilich
8,651 Expert Mod 8TB
@tarunkhatri
time to get better… if you want to advance in JS, you need to know DOM. because DOM is what makes modifying HTML documents easy.

first some stuff to read:
DOM Intro (there are further articles listed)
DOM Intro @ W3C

some technical stuff
the DOM Specifications
the DOM IDL
Sep 30 '09 #8
Thanks vry much Dormi. This wud be really helpful. I know I really have to read this otherwise I ll keep on hanging around. But still rgt now if u have a solution for above do let me knw.
Sep 30 '09 #9
Dormilich
8,651 Expert Mod 8TB
I have an idea.
Expand|Select|Wrap|Line Numbers
  1. parentNode.firstChild().nodeValue = this.value;
case closed*.

you need to know DOM to understand the meaning of that. and event listeners.


* – for me
Sep 30 '09 #10
Thanks for your effort.
Sep 30 '09 #11
Dormilich
8,651 Expert Mod 8TB
and now for a working (FF) example
Expand|Select|Wrap|Line Numbers
  1. function setTD()
  2. {
  3.     this.parentNode.parentNode.firstElementChild.textContent = this.value;
  4. }
  5. // addEventForEach() is a custom function
  6. document.getElementsByTagName("select").addEventForEach("change", setTD, false);
Sep 30 '09 #12
I have changed my code to below.. but still dosnt work.?? does any one has a solution
Expand|Select|Wrap|Line Numbers
  1. <script type="text/javascript"> 
  2. function displaytaskid(ths,rowno) { 
  3.     var id= ths.options[ths.selectedIndex].value;  
  4.     alert (id);
  5.    document.getElementById('task_id_rowno').innerHTML= id;
  6.  
Expand|Select|Wrap|Line Numbers
  1. <?php for($count; $count <15; $count++)
  2. {?>
  3.  
  4.     <tr>
  5.     <?php echo "<td id=\"task_id_$count\">"; ?>
  6.     <?php
  7.        $conn = connect();
  8.      $res2 = sql_select1(); 
  9.          ?>
  10.  
  11.     <td name = "task_id[]"><select name="task_id" id="dropdown" onchange="displaytaskid(this,\"$count\")">
  12.     <option value=""></option>5
  13.     <?php
  14.  
  15.       while($lp_row = pg_fetch_assoc($res2))
  16.     {
  17.           $val = $lp_row["task_id"];
  18.           $caption = $lp_row["task_description"]; ?>
  19.         <option value="<?php echo $val ?>"><?php echo $caption ?></option>
  20.         <?php }  ?></select>
  21.         </td>
  22.  
Sep 30 '09 #13
Dormilich
8,651 Expert Mod 8TB
JS, unlike PHP, does not search for variable names inside strings.
Sep 30 '09 #14
humm ok... I changed it to
Expand|Select|Wrap|Line Numbers
  1.  document.getElementById(rowno).innerHTML= id;
but still no result
Sep 30 '09 #15
Dormilich
8,651 Expert Mod 8TB
if rowno is not the ID then you have no target element.

note: can you see, how useful the DOM is?
Sep 30 '09 #16
Thanks Dormi...I got a way around passinf count variable was doin all the prob..Anyways thanks very much for ur help
Sep 30 '09 #17

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

4 posts views Thread by Lisa | last post: by
3 posts views Thread by DaveF | last post: by
reply views Thread by =?Utf-8?B?QnJpYW5ESA==?= | last post: by
reply views Thread by =?Utf-8?B?UGhpbCBKb2huc29u?= | last post: by
1 post views Thread by ghjk | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by Gurmeet2796 | last post: by
reply views Thread by mdpf | last post: by
reply views Thread by listenups61195 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.