php - Why can't I access textarea id's after parsing array -
i'm loading multiple clients on page, each record own <textarea>. set each <textarea> client's clientid.
if(isset($_post['loaddata'])){ try{ $stmt = $db->prepare('select clientid, fname, lname clients memberid = :memberid , groupid = :groupid order lname'); $stmt->bindvalue(':memberid', $_session["memberid"], pdo::param_int); $stmt->bindvalue(':groupid', $_post['groupid'], pdo::param_int); $stmt->execute(); $result = $stmt->fetchall(); foreach($result $row ) { $i++; echo '<tr style="'.getbgc($i).'"> <td style="display:none">'.$row[0].'</td> <td style="width:auto;">'.$row[1].'</td> <td style="width:auto;">'.$row[2].'</td> <td><textarea id='.$row[0].' class="form-control" rows="1"></textarea></td> </tr>'; } } ... after data loads, test <textarea> id's:
$.ajax({ url : 'wsparticipation.php', type : 'post', async : false, data : { 'loaddata' : 1, 'groupid' : temp }, success:function(re){ $('#showdata').html(re); $('#13').html("i 13"); $('#15').html("i 15"); $('#10').html("i 10"); } ... and textareas show html.
when ready save the entered data, set clientid's array.
if(isset($_post['getarray'])){ $stmt = $db->prepare('select clientid clients memberid = :memberid , groupid = :groupid order lname'); $stmt->bindvalue(':memberid', $_session["memberid"], pdo::param_int); $stmt->bindvalue(':groupid', $_post['groupid'], pdo::param_int); $stmt->execute(); $result = $stmt->fetchall(); $ret = array(); foreach($result $row ) { $ret[] = $row['clientid']; } echo json_encode($ret); exit(); } $.ajax({ url : 'wsparticipation.php', type : 'post', datatype : 'json', data : { 'getarray' : 1, 'groupid' : temp }, success:function(re){ data = $.parsejson(re); $.each(data, function(i, clientid) { alert(clientid); $('#clientid').html("hahaha"); }); $('#2').html("made here this"); } }); the alert() indeed shows me each of clientid's, next statement $('#clientid').html("hahaha"); nothing. last statement $('#2').html("made here this"); puts text in appropriate textarea.
so, since alerts showing me clientid's, why not able access textarea using clientid $.each(data, function(i, clientid)?
$('#clientid') selects element id of "clientid".
i think want dynamically build selector concatenating "#" symbol variable's value:
$('#'+clientid).html("hahaha"); example below:
var clientid = 2; $('#' + clientid).html('test'); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <textarea id="2"></textarea>
Comments
Post a Comment