2016-10-04 135 views
1

這裏是我的代碼。表格重新加載頁面無需發送提交數據

在我的.js文件:

function Sendit() 
{ 
    bValidate = validateField(); 
    if(bValidate) 
    { 
     var title = $("#title").val(); 

     theUrl = 'index.php'; 

     params = ''; 
     params += 'action=Send'; 
     params += '&title='+title;   
     $.ajax ({ 
      url: theUrl, 
      data: params, 
      async:true, 
      success: function (data, textStatus) 
      { 
       //do smth 
       alert('went well'); 

      } 
      , 
      error: function(jqXHR, textStatus, errorThrown) 
      { 
      alert(errorThrown); 
      } 
     }); 
    } 
} 

function validateField() 
{ 
     var title = document.getElementById('title').value;   
     if(!title.match(/\S/)) 
     { 
      //do some alerting 
      return false; 
     } 
     else 
     { 
     return true; 
     } 
} 

在我的index.php文件:

<form action="" method="post" name="myform" id="myform"" > 
Title: <input class="" type="text" name="title" value="" id="title"/> <br> 
<input type="submit" value="Submit" onClick="javascript:Sendit();return false; "> 
</form> 

<?php 
if ($_REQUEST["action"]=='Send') 
{ 
    $title = $_REQUEST["title"]; 


     $sql = "INSERT INTO ... 
     $retval = $mysqli->query($sql, $conn); 

     if(! $retval) { 
      echo('Could not enter data insert: ' . mysql_error()); 
     } 
     else 
     { 
     //inform that everything went well 

     } 
     ?> 

單擊該按鈕sunmit時這不會發送任何事情。事實上,你可以點擊按鈕,直到一天結束時沒有任何事情發生(甚至沒有調試器中的消息)

如果我從按鈕中的onClick中刪除return false;,我點擊按鈕和頁面重新加載,即使沒有在其中擁有。

阿賈克斯的成功不提醒的事情,在這兩種情況下,以填補標題輸入填充,沒有東西插在我的數據庫。

插入查詢是正確的,我檢查了它。

如何發送數據和驗證任何想法?

感謝

回答

0

用下面的代碼發送req。

function Sendit() 
{ 
bValidate = validateField(); 
if(bValidate) 
{ 
    var title = $("#title").val(); 

    theUrl = 'index.php'; 

    params = {}; 
    params["action"] = 'Send'; 
    params["title"] = title;   
    $.ajax ({ 
     url: theUrl, 
     data: params, 
     async:true, 
     success: function (data, textStatus) 
     { 
      //do smth 
      alert('went well'); 

     } 
     , 
     error: function(jqXHR, textStatus, errorThrown) 
     { 
     alert(errorThrown); 
     } 
    }); 
    } 
} 
0

validateField()函數從不返回true,那麼你if(bValidate)將永遠不會運行。 Javascript函數返回undefined,除非你明確地返回一些東西,試試這個:

function validateField() 
{ 
    var title = document.getElementById('title').value;   
    if(!title.match(/\S/)) 
    { 
     //do some alerting 
     return false; 
    } esle { 
     return true; 
    } 
} 
+0

它不會改變任何事情:( –

相關問題