私はあなたの質問を理解すると思います。
ウェブページを閲覧したユーザーは、いくつかのデータフィールドを完成させます。その1つは選択コントロールです。ただし、データをデータベースに送信する際に問題が発生した場合は、そのページがユーザーに再表示されたときに値が消去されます。これは正しいです?
もしそうなら、それを解決するにはいくつかの方法があります。
(1)クライアント側のフィールド検証:フォームが送信される前に、フォーム提出を続行する前に、フィールドが有効であることをテストして有効であることを確認します。
ジャバスクリプト/ jQueryの:ような何か
$(document).ready(function(){
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
});
}); //END document.ready
(2)AJAX。 Ajaxは、フォームを使用する場合と同様に、ページを残したり更新したりせずに、サーバーにデータを送信する方法です。問題がある場合は、ページを更新して修正する内容をユーザーに伝え、すべてのユーザーの変更を保存します。 AJAXで<form>
コンテナを使用することはできますが、必ずしも必要はありません。あなたはDIVを使うことができ、AJAXも同じように動作します。実際には、フォームを使用するときには、フォームをページから出そうとしないようにするには、常にevent.preventDefault()
を使用する必要があります(デフォルト動作)。
ジャバスクリプト/ jQueryの:
$(document).ready(function(){
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
});
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
$.ajax({
type: 'post',
url: 'add_the_data.php',
data: 'fn=' +firstname+ '&ln=' +lastname,
success: function(d){
if (d == 1){
//Success
$('#firstname').val('');
$('#lastname').val('');
alert('Form submission was successful');
}else
//Fail
alert('Data was not submitted. Please try again.')
$('#firstname').focus();
}
}
});
}); //End Submit
}); //END document.ready
add_the_data.php
<?php
$fn = $_POST['fn'];
$ln = $_POST['ln'];
//Do your database entry here
$out = add_the_data_function($fn, $ln); //returns 1 or 0
echo out;
参考文献:
More about AJAX, some simple examples
私はここにどんな質問を参照してくださいいけない、記入してくださいあなたのコード。 – mmativ
Hi Leone、もう少し詳しく質問する必要があります。実際に達成しようとしていることを理解するのはかなり難しいです。何が起きているのかわかるコードでしょうか? – ncubica
私はちょうどコードを編集しました、それは私に投稿をさせてくれませんでした –