私はMYSQLのデータからなるテーブルを持っています。テーブルの要素を変更するたびに、データベースはajaxによって更新されます。 これは編集可能な行にデータを送信するためのJavaScriptコードです。<td contenteditable = "true">要素に対する単純な検証。
function saveToDatabase(editableObj,column,id) {
$(editableObj).css("background","#FFF url(images/loaderIcon.gif) no-repeat right");
$("#tabs-1").load(location.href + " #tabs-1");
$.ajax({
url: "saveedit.php",
type: "POST",
data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
success: function(data){
$(editableObj).css("background","#FDFDFD");
}
});
}
上記の機能の後、saveedit.phpはデータベースの更新を処理し、機能します。
次に、これはhtmlのmy tableです。これらの表要素は編集可能です。
<?php
$result = FUNCTION_TO_RETRIEVE_DATA_FROM_DB;
foreach($result as $k=>$v){
?>
<tr>
<td><?php echo $k+1; ?></td>
<td contenteditable="true" onBlur="saveToDatabase(this, 'memberID', '<?php echo $result[$k]["memberID"]; ?>')"><?php echo $result[$k]["memberID"]; ?></td>
<td contenteditable="true" onBlur="saveToDatabase(this, 'surname', '<?php echo $result[$k]["memberID"]; ?>')"><?php echo $result[$k]["surname"]; ?></td>
<td contenteditable="true" onBlur="saveToDatabase(this, 'forename', '<?php echo $result[$k]["memberID"]; ?>')"><?php echo $result[$k]["forename"]; ?></td>
<td contenteditable="true" onBlur="saveToDatabase(this, 'address', '<?php echo $result[$k]["memberID"]; ?>')"><?php echo $result[$k]["address"]; ?></td>
<td contenteditable="true" onBlur="saveToDatabase(this, 'gradeID', '<?php echo $result[$k]["memberID"]; ?>')"><?php echo $result[$k]["gradeID"]; ?></td>
</tr>
<?php
}
?>
このコードは動作していますが、私はお願いしたい質問がある、どのように私は、この要素にユーザーが入力したデータを検証することができますか?たとえば、最初の列memberIDを確認したい場合は、6文字を超えることはできません。また、必須であるかどうかを確認することもできます。私がしようとしているのは、入力されたデータをAJAXを使用して送信する前に検証することですが、今ではテーブル要素でどのように検証が行われるかわかりません。あなたの条件が満たされたとき
var newVal = editableObj.innerHTML;
// Your validation on newVal, if validation successful call the saveToDatabase() function
// Otherwise show an error message and do nothing
詳細な回答ありがとうございました!あなたのコードは、私がそれらをどのように検証できるかを理解するために十分に具体的でした。 – yeehui