2012-05-22 62 views
0

我有一個表單,我想要做驗證。但是有一個我想驗證編寫查詢的字段。我不想要表單回發,因爲在回發之後,表單中填寫的所有值都丟失了。有沒有什麼辦法,我可以寫一個查詢沒有回發,或者如果我必須回發如何保留值?請幫助PHP:如何在沒有表單回傳的情況下執行查詢?

+0

當你說「回傳」時,你是什麼意思? – Andrew

回答

2

如果您使用AJAX(jQuery),則可以發佈XML請求而無需刷新瀏覽器,如果這是您所需的。 爲此,只需創建一個表單的一些文本框和一個提交按鈕,傾其所有的ID,並添加一個點擊監聽器的按鈕:

$('#submit-button').click(function() { 
    var name = $('#username').val(); 
    $.ajax({ 
     type: 'POST', 
     url: 'php_file_to_execute.php', 
     data: {username: name}, 
     success: function(data) { 
      if(data == "1") { 
       document.write("Success"); 
      } else { 
       document.write("Something went wrong"); 
      } 
     } 
    }); 
}); 

如果在用戶點擊按鈕與「提交按鈕「-ID,這個函數被調用。然後,使用POST將文本字段的值發送到php_file_to_execute.php。在這個.php文件中,你可以驗證用戶名並輸出結果:

if($_POST['username'] != "Neha Raje") { 
    echo "0"; 
} else { 
    echo "1"; 
} 

我希望我能幫助你! :)

0

你可能想要改寫你寫的,它有點不清楚。僅供參考我是這樣做的;

<form method="post"> 
Text 1: <input type="text" name="form[text1]" value="<?=$form["text1"]?>" size="5" /><br /> 
Text 2: <input type="text" name="form[text2]" value="<?=$form["text2"]?>" size="5" /><br /> 
<input type="submit" name="submit" value="Post Data" /> 
</form> 

而當我處理數據時,就是這樣;

<?php 
if ($_POST["submit"]) { 
$i = $_POST["form"]; 
if ($i["text1"] or .....) { $error = "Something is wrong."; } 
if ($i["text2"] and .....) { $error = "Maybe right."; } 

if (!$error) { 
    /* 
    * We should do something here, but if you don't want to return to the same 
    * form, you should definitely post a header() or something like that here. 
    */ 
    header ("Location: /"); exit; 
} 
// 
} 

if (!$_POST["form"] and !$_GET["id"]) { 
} else { 
$form = $_POST["form"]; 
} 
?> 

通過這種方法,數值不會丟失,除非設置它們迷路。

0

使用jQuery的$.post()方法:

$('#my_submit_button').click(function(event){ 
    event.preventDefault(); 
    var username = $('#username').val(); 
    $.post('validate.php', {username: username, my_submit_button: 1}, function(response){ 
    console.log(response); //response contain either "true" or "false" bool value 
    }); 
}); 

在validate.php從您的形式獲取用戶名作爲異步像這樣:

if(isset($_POST['my_submit_button']) && $_POST['my_submit_button'] == 1 && isset($_POST['username']) && $_POST['username'] != "") { 

    // now here you can check your validations with $_POST['username'] 
    // after checking validations, return or echo appropriate boolean value like: 
    // if(some-condition) echo true; 
    // else echo false; 

} 

注意:請考慮安全性瞭解相關漏洞以及在使用AJAX執行數據庫更改腳本之前的其他問題。

相關問題