フォームを送信せずに、値が一致する 2 つの textboxes テキスト ボックスのいずれかの値を確認したい。keypress イベントがこれを処理し、値を jour_info.php ページから get_sid.php ページに送信します。私は2つのファイルを持っています
- jour_info.php
- get_sid.php
最初のファイルのコード
<form method="post" name="journ_form" >
P-ISSN/ISBN<br/><input name="printissn" id="printissn_input" type="text" value="">
<input type="text" name="pissnsid" id="pissnsid" style="width: 30px;" autocomplete="off" value="">
<span style="color: red;" id="feedback"></span>
</form>
<script type="text/javascript">
$(document).ready(function(){
$('#feedback').load('get_sid.php').show();
$('#printissn_input').keyup(function(){
$.post('get_sid.php', {printissn: journ_form.printissn.value},
function(result) {
//$('#feedback').html(result).show();
document.getElementById('pissnsid').value = result;
});
});
$('#pissnsid').keyup(function(){
$.post('get_sid.php', {pissnsid: journ_form.pissnsid.value},
function(result) {
document.getElementById('printissn_input').value = result;
});
});
});
2 番目のファイルのコード
<?php
include 'auth.php';
$printissn = $_POST['printissn'];
$pissnsid = $_POST['pissnsid'];
if($printissn){
$check = mysql_query("SELECT printissn, pissnsid FROM jour_entries WHERE printissn='$printissn'");
$check_num_rows = mysql_num_rows($check);
while($row = mysql_fetch_array($check)){
//$get_printissn = $row['printissn'];
$get_printissnsid = $row['pissnsid'];
if($check_num_rows == 0){
echo '';
} else if($check_num_rows == 1){
echo $get_printissnsid;
}
}
} else if($pissnsid){
$check = mysql_query("SELECT printissn, pissnsid FROM jour_entries WHERE pissnsid='$pissnsid'");
$check_num_rows = mysql_num_rows($check);
while($row = mysql_fetch_array($check)){
$get_printissn = $row['printissn'];
//$get_printissnsid = $row['pissnsid'];
if($check_num_rows == 0){
echo '';
} else if($check_num_rows == 1){
echo $get_printissn;
}
}
}
?>
問題は、最初のテキスト ボックスに値を入力すると、対応する一致が 2 番目のテキスト ボックスに表示されることです。ただし、値が 2 つのフィールドと一致せず、ユーザーが手動でデータを入力する必要がある場合、問題が発生します。一致するものがなく、ユーザーが最初のテキスト ボックスに値を入力すると、2 番目のテキスト ボックスの値が消えます。それを解決する方法は?