javascript - Using Ajax to submit form from jQuery tabs -
i having problems submitting form on second tab, the page reloading , submitting first tab. understand can solved using ajax. have read other posts haven't quite grasped explanation great.
i form load different page same way 'action' works within html form.
the code below shows part of html , jquery.
what ajax , need placed in order second , on going tabs post data inputted in particular tab.
<div class="tabs"> <ul class="tab-links" style= "margin-top: 50px; width:700px;"> <li class="active"><a href="#tab1"><p>advert space</p></a></li> <li><a href="#tab2"><p>vouchers</p></a></li> <li><a href="#tab3"><p>business 2 business</p></a></li> <li><a href="#tab4"><p>search space ads</p></a></li> </ul> <div class="tab-content" > <div id="tab1" class="tab active"> <h4 style="font-weight: 100">display advert</h4> <?php include ('advertinfo.php')?> </div> jquery(document).ready(function() { jquery('.tabs .tab-links a').on('click', function(e) { var currentattrvalue = jquery(this).attr('href'); jquery('.tabs ' + currentattrvalue).show().siblings().hide(); jquery(this).parent('li').addclass('active').siblings().removeclass('active'); e.preventdefault(); }); });
here copy of form code
<form action="advertupload.php" method= "post"> <dl> <dd><input type="hidden" name="business" value="<?php echo ($_session['myname']) ?>"> <input type="hidden" name="approval" value="n"> <input type="hidden" name="id" value="<?php echo $_get['id'];?>"/> <dt><p>which advert space use?</p> <dd><select name="location" id="textfield"> <option value="0">header</option> <option value="1">location 1</option> <option value="2">location 2</option> <option value="3">location 3</option> <option value="4">location 4</option> <option value="5">location 5</option> <option value="6">location 6</option> </select> <dt><p>when start advert?</p> <dd><input type="date" name="startdate" id="textfield"> <dt><p>when advert end?</p> <dd><input type="date" name="enddate" id="textfield"> <dt><button type="submit" name="submit" class="btn" style="margin-top: 20px; margin-left: 40px;"><p style="margin-top:1px; color: #fff">next</p></a></button></td> </dl>
here's example of how submit forms using ajax: http://codepen.io/medinasod/pen/qyqmkz
js
jquery("document").ready(function() { jquery(".tab1form, .tab2form, .tab3form").submit(function() { event.preventdefault(); var fields = jquery("input", this).serializearray(); jquery("#results").empty(); jquery.each(fields, function(i, field) { jquery("#results").append(field.value + " "); }); jquery.ajax({ method: "post", url: "advertupload.php", data: fields }) .done(function(msg) { console.log("data saved: " + msg); window.location.assign("/advertupload.php"); }); }); });
html
<div class="container"> <form class="tab1form"> <dl> <dd><input type="hidden" name="business" value="<?php echo ($_session['myname']) ?>"> <input type="hidden" name="approval" value="n"> <input type="hidden" name="id" value="<?php echo $_get['id'];?>"/> <dt><p>which advert space use?</p> <dd><select name="location" id="textfield"> <option value="0">header</option> <option value="1">location 1</option> <option value="2">location 2</option> <option value="3">location 3</option> <option value="4">location 4</option> <option value="5">location 5</option> <option value="6">location 6</option> </select> <dt><p>when start advert?</p> <dd><input type="date" name="startdate" id="textfield"> <dt><p>when advert end?</p> <dd><input type="date" name="enddate" id="textfield"> <dt><button type="submit" name="submit" class="btn" style="margin-top: 20px; margin-left: 40px;"><p style="margin-top:1px; color: #fff">next</p></a></button><span id="results"></span></td> </dl> </div>
reference: sample code taken jquery ajax api , jquery serializearray() documentation.
Comments
Post a Comment