2013-07-17 30 views
0

我有一個HTML文本字段,我將獨特的值添加到我的數據庫。目前我使用PHP來驗證在文本字段中輸入的值在我的數據庫中不存在。我想知道是否可以用JavaScript實現,這樣如果出現錯誤,我可以阻止表單提交。不要使用JavaScript在MYSQL數據庫中提交現有值

編輯:這是怎麼了,我走了這麼遠

的JavaScript在表單標籤用的onsubmit =「返回validateForm()」執行。我收到「系統錯誤!」消息和表單即使我說它不應該提交。

function validateForm(){ 

    // Get all elements with the required-class 
    var x = document.getElementsByClassName('required'); 

    var submitForm = true; 

    for(var i = 0; i < x.length; i++){ 

     // Fetch input 
     var input = x[i]; 

     // Fetch input value 
     var inputValue = input.value; 

     if(input.disabled == false){ 

      // Check if the value exist    
      if(inputValue == null || inputValue == ''){ 

       // Red border 
       input.style.borderColor = "#ff0000"; 

       // Don't submit the form 
       submitForm = false; 

      } else if(input.name == 'company'){ 

       $.ajax({ 

        type: 'GET', 
        url: '../includes/ajax_mysql.php?company='+input.value, 
        success: function(data){ 

         if(data == '1'){ submitForm = false; } else{ submitForm = true; } 

         alert(data); 

        }, 
        error: function(data){ 

         submitForm = false; 

         alert("System Error!"); 

        } 

       }); 

      } 

     } 

    } 

    if(!submitForm){ return false; } else{ return true; } 

} 

回答

3

您無法通過Javascript直接訪問數據庫。

無法通過Javascript直接訪問數據庫。解決方案是使用AJAX調用服務器端PHP頁面,然後查詢數據庫。

+0

看起來像是我最好的解決方案。雖然如此更新我的問題與一些代碼無法讓它工作。 –

+0

解決了它。我不得不添加'async:false'來設置成功/錯誤函數中的變量。標記你的答案是正確的,因爲它讓我找到答案。 –

+0

很高興我能幫到你。 –

0

如果您向詢問數據庫的服務器端程序發出HTTP請求,客戶端上運行的JavaScript只能知道數據庫中的內容。

您可以使用XMLHttpRequest來做到這一點,但它可能不值得您付出努力(因爲您必須在數據正常的情況下重新提交數據)。

0

你不能直接使用JavaScript訪問數據庫,因爲它只是一個客戶端腳本語言,它只能在你輸入表單的時候驗證數據,它可以使用服務器端腳本語言,如asp.net,php 。你最好使用AJAX,它可以幫助你實現你的目標。試試吧,如果你不能做到問你去哪裏錯了

0

你的HTML文本字段

<input type="text" name="txt_field" id="txt_field"> 
<input type="submit" name="insert_value" id="insert_value" value="Send" /> 

現在把JS的AJAX頁面文件

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

現在你的腳本

$("#insert_value").live('click',function(){ 
    var keyword=$("#txt_field").val(); 
    $.ajax({ 
     url  : 'ajax.php',//page where you need to write the query 
     type  : 'POST', // wil get data as post 
     data  : { 'keyword':keyword },//you need to get the data as $_POST['keyword'] in ajax page 
     success : function(resp){ 
      if(resp == "1") 
      { 
       alert("already exists"); 
      } 
      else 
      { 
       //submit the form 
      } 
     }, 
     error : function(resp){ 
      alert("System Error !!!"); 
     } 
    }); 
}); 

編寫查詢並返回,如

if(mysql_num_rows($result)>0) 
{ 
    echo "1"; 
} 
else 
{ 
    echo "0"; 
} 

試試這個,讓我知道狀態。

+0

在我的示例中無法使用它,因爲我在表單中使用了onsubmit操作。用我到目前爲止的代碼更新了我的問題。 –

相關問題