Passing PHP Variables to JavaScript Function -
this question has answer here:
- how pass variables , data php javascript? 17 answers
i'm attempting pass php variables javascript function, updated elements in bootstrap modal. works fine when first 5 passed, when attempt pass 6th acts if javascript function fails run.
what's odd difference between working , non-working versions addition of parameter. don't understand why adding parameter cause fail. appreciate help!
working php:
echo '<td><a data-toggle="modal" href="#mymodal" onclick="updatemodal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.')" class="btn btn-primary btn-lg">view</a></td>';
non-working php:
echo '<td><a data-toggle="modal" href="#mymodal" onclick="updatemodal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.','.$order_level.')" class="btn btn-primary btn-lg">view</a></td>';
javascript
<script type="text/javascript"> function updatemodal(the_id, date_placed, payout, due_date, req_pages, o_level, subject, spacing, sources, format, c_name, c_email, c_phone){ $("#order_num").text(the_id); $("#order_placed").text(date_placed); $("#order_payout").text("$" + payout); $("#order_due").text(due_date); $("#order_pages").text(req_pages); $("#order_level").text(o_level); $("#order_subject").text(subject); $("#order_spacing").text(spacing); $("#order_sources").text(sources); $("#order_format").text(format); $("#customer_name").text(c_name); $("#customer_email").text(c_email); $("#customer_phone").text(c_phone); } </script>
modal code
<div class="modal fade" id="mymodal" tabindex="-1" role="dialog" aria-labelledby="mymodallabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 class="modal-title">order <span class="color" id="order_num">x</span></h3> <p><small><strong>order placed:</strong><span id="order_placed">n/a</span></small></p> </div> <div class="modal-body"> <h3>you recieve: <span class="color" id="order_payout">n/a</span></h3> <h4>due date: <span class="color" id="order_due">n/a</span></h4> <h4>pages required: <span class="color" id="order_pages">n/a</span></h4> <hr> <p><strong>academic level: </strong><span id="order_level">n/a</span></p> <p><strong>subject: </strong><span id="order_subject">n/a</span></p> <p><strong>spacing: </strong><span id="order_spacing">n/a</span></p> <p><strong>sources: </strong><span id="order_sources">n/a</span></p> <p><strong>format: </strong><span id="order_format">n/a</span></p> <hr> <h3>customer details</h3> <p><strong>customer name: </strong><span id="customer_name">n/a</span></p> <p><strong>customer email: </strong><span id="customer_email">n/a</span></p> <p><strong>customer phone number: </strong><span id="customer_phone">n/a</span></p> <hr> <h3>additional info</h3> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">close</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog -->
i suggest passing variables json object:
$parameters = array( 'id' => $order_id, 'placed' => $order_placed, 'payout' => $order_payout, 'due' => $order_due, 'pages' => $order_pages, 'level' => $order_level, // , on ); echo '<td><a data-toggle="modal" href="#mymodal" onclick="updatemodal('.json_encode($parameters).')" class="btn btn-primary btn-lg">view</a></td>';
and in js:
<script type="text/javascript"> function updatemodal(parameters) { $("#order_num").text(parameters.id); $("#order_placed").text(parameters.placed); $("#order_payout").text("$" + parameters.payout); $("#order_due").text(parameters.due); $("#order_pages").text(parameters.pages); $("#order_level").text(parameters.level); $("#order_subject").text(parameters.subject); $("#order_spacing").text(parameters.spacing); $("#order_sources").text(parameters.sources); $("#order_format").text(parameters.format); $("#customer_name").text(parameters.c_name); $("#customer_email").text(parameters.c_email); $("#customer_phone").text(parameters.c_phone); } </script>
Comments
Post a Comment