2017-04-25 61 views
0

我想在表单div中插入后显示数据,并在同一页面上的另一个div上显示该提交表单的结果而不更改wordpress中的页面?我使用的JavaScript函数onSubmit它的工作原理根据我想要的,但提交表单div后,它显示隐藏的结果div几秒钟,然后它立即重新加载,我不想刷新页面后显示结果div?这是第一个div页面在wordpress中使用javascript表单提交后立即重新加载

表格代号:

<form style="margin-top: 30px;" class="form-horizontal t-gray" id="ContactForm" method="post" onsubmit="document.getElementById('first').style.display = 'none';document.getElementById('hidden_div').style.display = ''; return true;" action=""> 
 
\t \t \t \t \t \t \t <div id="first"> 
 

 
\t \t \t \t \t \t <div class="col-md-6"> 
 
\t \t \t \t \t \t <div class="form-group"> 
 
\t \t \t \t \t \t \t <label for="" class="col-sm-3 control-label">Select Journey Type:</label> 
 
\t \t \t \t \t \t \t <div class="col-sm-6"> 
 
\t \t \t \t \t \t \t <select class="form-control" name="JourneyType"> 
 
\t \t \t \t \t \t \t \t <option value="Distance (point A to Point B)">Distance (point A to Point B)</option> 
 
\t \t \t \t \t \t \t <option value="Hourly">Hourly</option> 
 
\t \t \t \t \t \t \t \t \t </select> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 

 
\t \t \t \t \t \t <div class="form-group"> 
 
\t \t \t \t \t \t \t <label for="" class="col-sm-3 control-label">Baby Seat Required:</label> 
 
\t \t \t \t \t \t \t <div class="col-sm-6"> 
 
\t \t \t \t \t \t \t <select class="form-control" name="babyseat"><option value="Not Required">Not Required</option><option value="baby seat">Baby Seat</option> 
 
\t \t \t \t \t \t \t \t \t <option value="booster seat">Booster Seat</option></select> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 
\t </div> 
 
\t <div class="col-md-6"> 
 
\t \t \t \t \t \t <div class="form-group" style="position: relative;"> 
 
\t \t \t \t \t \t \t <label for="" class="col-sm-3 control-label">Journey From:</label> 
 
\t \t \t \t \t \t \t <div class="col-sm-6"> 
 
\t \t \t \t \t \t \t <input class="form-control" type="text" value="" name="Journey_From" id="inputString" onKeyUp="lookup(this.value);" onBlur="fill();" /> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t \t <div class="suggestionsBox" id="suggestions" style="display: none;"> 
 
\t \t \t \t \t \t \t \t <!-- <img src="images/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" /> --> 
 
\t \t \t \t \t \t \t \t <div class="suggestionList" id="autoSuggestionsList"> 
 

 
\t \t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t <div class="form-group" style="position: relative;"> 
 
\t \t \t \t \t \t \t <label for="" class="col-sm-3 control-label">Journey To:</label> 
 
\t \t \t \t \t \t \t <div class="col-sm-6"> 
 
\t \t \t \t \t \t \t <select class="form-control" name="Journey_To"><option value="Melbourne Airport">Melbourne Airport</option> 
 
\t \t \t \t \t \t \t \t \t <option value="Melbourne CBD">Melbourne CBD</option></select> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 
\t </div> 
 
\t \t \t \t \t \t <div class="form-group"> 
 
\t \t \t \t \t \t \t <div class="col-md-6 col-md-offset-3"> 
 
\t \t \t \t \t \t \t <button type="submit" class="btn btn-lg btn-primary" style="background-color:#e6ae48; border-color:#e6ae48; color:#fff;">Get Quote</button> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 
\t \t \t \t \t </div> 
 

 
\t \t \t \t \t </form> 
 
\t \t \t \t </div></div> 
 
</div> 
 
\t \t \t \t <div class="clear"></div><div class="clear"></div></div></div><div class="clear"></div>

这是我的第二个div这表明数据第一个div之后提交,但不留长:

<div id="hidden_div" style="display:none" > 
 
\t \t \t \t \t \t <?php   
 
// $conn = mysqli_connect("localhost","root","", "melbou99_melcars") or die("Could not make connection to the Database."); 
 

 
$conn = mysqli_connect("localhost","tanxeelc_singh","[email protected]", "tanxeelc_melb") or die("Could not make connection to the Database."); 
 

 
// $db= mysql_select_db("melbou99_melcars",$conn) or die("Could not select the Database."); 
 
//$conn = mysql_connect("localhost","root","") or die("Could not make connection to the Database."); 
 
//$db= mysql_select_db("nz",$conn) or die("Could not select the Database."); 
 
// old pass - !Cmo_;,cBb^A 
 
?> 
 
\t \t <div class="container booking-area"> 
 
\t \t <div class="row"> 
 
\t \t \t <div class="col-md-12"> 
 
\t \t \t <center> \t <h3 class="">Online Price Calculator:</h3> </center> 
 
        <center> <p class="t-gray"> Based on your selection, the price estimation is as follows. This is just the estimation not the final price.</p></center> 
 

 
\t \t \t \t \t \t \t <?php 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t $journeytype= $_REQUEST['JourneyType']; 
 
\t \t \t \t \t \t \t $babyseat= $_REQUEST['babyseat']; 
 
\t \t \t \t \t \t \t $journeyfrom= $_REQUEST['Journey_From']; 
 
\t \t \t \t \t \t \t $journeyto= $_REQUEST['Journey_To']; 
 

 
\t \t \t \t \t \t \t ?> \t 
 

 
\t \t \t \t \t \t \t <?php 
 
          $sql = "SELECT * FROM prices where value='$journeyfrom'"; 
 
\t \t \t \t \t \t \t $rs = mysqli_query($conn, $sql); 
 
\t \t \t \t \t \t \t while($myrow = mysqli_fetch_row($rs)){ 
 
\t \t \t \t \t \t \t \t $value=$myrow[1]; 
 
\t \t \t \t \t \t \t \t $cbd=$myrow[2]; \t 
 
\t \t \t \t \t \t \t \t $melb_air=$myrow[3]; 
 
\t \t \t \t \t \t \t \t $ava_air=$myrow[4]; 
 
\t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t ?> 
 
<div class="row"> 
 
<div class="col-sm-6 pull-left"> 
 
\t \t \t \t \t <h4 class="">Journey Type:</h4> 
 
\t \t \t \t \t <p class="t-gray"><?php echo $journeytype; ?></p> 
 

 
\t \t \t \t \t <h4 class="">Baby Seat Required:</h4> 
 
\t \t \t \t \t <p class="t-gray"><?php echo $babyseat; ?></p> 
 

 
\t \t \t \t \t <h4 class="">Journey From:</h4> 
 
\t \t \t \t \t <p class="t-gray"><?php echo $journeyfrom; ?></p> 
 

 
\t \t \t \t \t <h4 class="">Journey To:</h4> 
 
\t \t \t \t \t <p class="t-gray"><?php echo $journeyto; ?></p> 
 

 
</div> 
 
<div class="col-sm-6 pull-right" style="padding-right:100px;margin-top:5%;"> 
 
<h2 align="center">Fare:<br/> 
 
\t \t \t \t \t <span class="fare_p"> 
 
\t \t \t \t \t \t <?php 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t if($journeytype=="One Way Journey"){ 
 
\t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t \t if($journeyto=="Melbourne Airport"){ 
 
\t \t \t \t \t \t \t \t \t \t \t $fare= $melb_air; 
 
\t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t \t elseif($journeyto=="Avalon Airport"){ 
 
\t \t \t \t \t \t \t \t \t \t \t \t $fare= $ava_air; 
 
\t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t \t elseif($journeyto=="Melbourne CBD"){ 
 
\t \t \t \t \t \t \t \t \t \t \t \t $fare= $cbd; 
 
\t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t \t if($babyseat=="baby seat"|| $babyseat== "booster seat"){ 
 
\t \t \t \t \t \t \t \t \t \t \t $fare=$fare+10; 
 
\t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t \t \t else{ 
 
\t \t \t \t \t \t \t \t \t \t \t \t $fare=$fare+0; 
 
\t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t echo "One way fare = $" .$fare ; 
 
\t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t elseif($journeytype=="Return Journey"){ 
 
\t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t if($journeyto=="Melbourne Airport"){ 
 
\t \t \t \t \t \t \t \t \t \t $fare= $melb_air; 
 
\t \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t elseif($journeyto=="Avalon Airport"){ 
 
\t \t \t \t \t \t \t \t \t \t \t $fare= \t $ava_air; 
 
\t \t \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t elseif($journeyto=="Melbourne CBD"){ 
 
\t \t \t \t \t \t \t \t \t \t \t \t $fare= $cbd; 
 
\t \t \t \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t $fare=$fare*2; 
 
\t \t \t \t \t \t \t \t \t if($babyseat=="baby seat"||$babyseat== "booster seat"){ 
 
\t \t \t \t \t \t \t \t \t $fare=$fare+10; 
 
\t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t else{ 
 
\t \t \t \t \t \t \t \t \t $fare=$fare+0; 
 
\t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t \t echo "Return Fare = $" .$fare; 
 
\t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t \t ?> 
 
           </span> 
 
           <br/><br/> 
 
\t 
 
\t \t \t \t \t </h2> 
 

 
</div> 
 

 
</div><!--row--> 
 

 

 

 
\t \t \t \t 
 
\t \t \t </div> 
 
\t 
 
\t 
 
\t \t </div><!--row--> 
 
\t </div><!--fluid--> 
 
\t </div>

+0

您的代码很难阅读......建议您查阅event.preventDefault –

+0

如果您不希望页面重新加载,您需要停止第一个表单提交。但是,您似乎需要提交表单以获取第二个分部的数据 - 是吗? – Tom

+0

是的,我想第一个div数据提交和显示在第二个div是隐藏的,但是当我使用返回false;在Java脚本函数它不重新加载,但也没有从第一个div – Zain

回答

2

您可以通过将e传入onsubmit函数来使用e.preventDefault()

这是做什么的,简单地说,它改变了事件的默认行为。在提交表单的情况下,浏览器中的页面不会刷新。你可以阅读更多关于event.preventDefault()MDN

在HTML元素内部调用内联JavaScript函数并不被认为是最佳实践,至少在香草JS中不会发展。相反,您可以在单独的JS文件或script标记中使用元素的HTML引用,在此情况下最好为id

要引用您的形式,那么你会怎么做:

ES6(推荐)

const contactForm = document.getElementById('ContactForm'); 

ES5

var contactForm = document.getElementById('ContactForm'); 

绑定提交则事件可以做到无论是简单的通过点符号:

contactForm.onsubmit = function(e){ 
    e.preventDefault(); 
    // do some other stuff 
}; 

或通过添加一个事件监听器:

contactForm.addEventListener('submit', function(e) { 
    e.preventDefault(); 
    // keep doing stuff 
}, false); 

大多数JS开发者更喜欢addEventListener()方法,因为它给了他们在事件处理更多的控制。但是,在你的情况下,它可能被认为是多余的。

+0

没有工作e.preventDefault() – Zain

+0

我已经更新了我的答案更详细。希望能帮助到你! – JazzBrotha

+0

再次同样的问题,两个代码都不起作用......! – Zain

相关问题