2013-08-26 4 views
0

Я хочу проверить значения из одного из двух текстовых полей текстовых полей, которые соответствуют значению с другим, без отправки формы. Событие keypress обрабатывает это, отправив значение с страницы jour_info.php на страницу get_sid.php. У меня есть два файлаPhp: Как получить значение текстового поля из базы данных mysql без отправки формы

  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) { 
     //$('#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;  
} 
} 
} 
?> 

Теперь все работает нормально, проблема заключается в том, что в первом текстовом поле вводится значение, показывающее соответствующее совпадение во втором текстовом поле. Но в случае, если значение не совпадает с двумя полями, и пользователю необходимо вручную вводить данные, возникает проблема. Когда совпадения нет, и пользователь вводит значение в первом текстовом поле, тогда второе значение текстового поля исчезает. Как это решить?

+0

Если то, что вы пытаетесь сделать, это собрать значение с помощью JQuery и сделать что-то с ним, как напечатать его или сравнить это с другим, то вот что может вас заинтересовать: http://stackoverflow.com/questions/13058816/how-get-php-respone-from-jquery-load/13059086#13059086 '$ .get () 'является ответом для этого в некоторых случаях. –

+0

Как насчет того, чтобы вы не установили значение, если у вас нет значения для установки? – epascarello

+0

Yah, если человек вводит значение, и он отображает совпадение во втором текстовом поле, если он не совпадает, человек может ввести значение вручную во втором текстовом поле, но проблема заключается в том, когда мы пытаемся ввести значение во втором текстовом поле, значение в первом текстовом поле исчезает. – razor

ответ

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

Не работает. – razor

+0

Что происходит? Это тот же результат? У вас что-то совсем другое? У вас есть ошибка в консоли отладки? – Technoh

+0

Проблема в том, что я ввожу что-то в текстовое поле, текст исчезает в другом текстовом поле, как это решить? – razor

Смежные вопросы