Php:如何在不提交表单的情况下从mysql数据库获取文本框值

时间:2013-08-26 12:11:27

标签: php javascript jquery mysql forms

我想检查两个文本框中任何一个文本框中的值与另一个文本框匹配的值而不提交表单。 keypress事件正在处理此事件,将jour_info.php页面中的值发送到get_sid.php页面。 我有两个文件

  1. jour_info.php
  2. get_sid.php
  3. 第一个文件中的代码

    <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;
        });
    });
    });
    

    第二个文件中的代码

    <?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;    
    } 
     }
    } 
    ?>
    

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

1 个答案:

答案 0 :(得分:0)

试试这个:

jour_info.php 更改

$('#pissnsid').keyup(function(){
    $.post('get_sid.php', {pissnsid: journ_form.pissnsid.value},

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