gpt4 book ai didi

php - 比较两个 texbox 中 mysql 数据库的值,无需提交表单

转载 作者:行者123 更新时间:2023-11-30 01:21:42 26 4
gpt4 key购买 nike

我想检查两个文本框之一的值与另一个文本框的值是否匹配,而无需提交表单。 keypress 事件正在处理此问题,将值从 jour_info.php 页面发送到 get_sid.php 页面。我有两个文件

  1. jour_info.php
  2. 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) {
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;
});
});
});

第二个文件中的代码

    <?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_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'];

if($check_num_rows == 0){
echo '';
} else if($check_num_rows == 1){
echo $get_printissn;
}
}
}
?>

现在一切正常,问题是当在第一个文本框中输入值时,它会在第二个文本框中显示相应的匹配项。但如果该值与两个字段不匹配并且用户需要手动输入数据,就会出现问题。当没有匹配项并且用户在第一个文本框中输入值时,第二个文本框值将消失。怎么解决?

最佳答案

在将结果放入其他输入字段之前检查结果是否有效:

function(result) {
if (result != '') {
document.getElementById('pissnsid').value = result;
}
});

您还需要修复您的 PHP。 if ($check_num_rows == 0) 检查不应位于 while 循环内,因为当没有行时,循环永远不会执行。您甚至根本不需要循环——我假设这些查询只能返回 1 行。因此,只需调用mysql_fetch_array()——如果它返回该行,则说明您有匹配项,否则没有匹配项,您应该echo ''

关于php - 比较两个 texbox 中 mysql 数据库的值,无需提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com