Показать сообщение отдельно
  #1 (permalink)  
Старый 03.05.2017, 02:59
Новичок на форуме
Отправить личное сообщение для Лев Посмотреть профиль Найти все сообщения от Лев
 
Регистрация: 17.03.2016
Сообщений: 3

Обращение к бд по событию
Добрый день гуру программирования.
Столкнулся со следующей проблемой :
1. Выполняю "живой" поиск в mysql при нахождении необходимого нажимаю на данное поле в выпадающем списке и оно записывается в input, тут все хорошо.
2. После записи значения должен происходить новое обращение к бд и вывод уточняющих полей по записи.
Добился подобного с перезагрузкой страницы, но пытаюсь реализовать через ajax и тут поплыл.

Вот код:
index.html
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <style>
 .search{
    position:relative;
}

.search_result{
    background: #FFF;
    border: 1px #ccc solid;
    width: 100px;
    border-radius: 4px;
    max-height:100px;
    overflow-y:scroll;
    display:none;
}

.search_result li{
    list-style: none;
    padding: 5px 10px;
    margin: 0 0 0 -40px;
    color: #0896D3;
    border-bottom: 1px #ccc solid;
    cursor: pointer;
    transition:0.3s;
}

.search_result li:hover{
    background: #F9FF00;
}
    </style>
    
</head>

<body>

    <input type="text" name="referal" placeholder="Судно" class="who"  autocomplete="off">
    <ul class="search_result"></ul>
    <p>
    <input type="text" name="Tsud" placeholder="Тип судна" class="who1" autocomplete="off" id = 'a'>
    <p>
    <input type="text" name="ImoSud" placeholder="IMO" class="who2">
    <p>
    <input type="text" name="GTSud" placeholder="GT" class="who3">
    <p>
    <input type="text" name="FlagSud" placeholder="Flag" class="who4"> 
    </p></p></p></p>

</body>
</html>

<script type="text/javascript">
$(function(){
    $('.who').bind("change keyup input click", function() {
        if(this.value.length >= 3){
            $.ajax({
                type: 'post',
                url: "search.php", 
                data: {'referal':this.value,'dt':'1'},
                response: 'text',
                success: function(data){
                    $(".search_result").html(data).fadeIn();          
                }
            })
        }
    })
    
    $(".search_result").hover(function(){
        $(".who").blur(); 
    })
выбранный результат в input
    $(".search_result").on("click", "li", function(){
        s_user = $(this).text();
        $(".who").val(s_user);
        $(".search_result").fadeOut();
         $.ajax({
                type: 'post',
                url: "search.php",
                data: {'vvvvv':s_user,'dt':'2'},
                response: 'text',
                success: function(data){
                            $("#a").html(data.a);

                            $(".who1").val($(".type.")).text();
                            $(".who2").val($(".Flag."));
                            $(".who3").val($(".imo."));
                            $(".who4").val($(".GT."));
                             }
            })
    })
})
</script>




search.php
<?php
global $tutorial_db;

$db_referal = new mysqli();
$db_referal->connect($dbhost, $dbuser, $dbpass, $dbname);
$db_referal->set_charset("utf8");

if ($db_referal->connect_errno) {
    printf("Connect failed: %s\n", $db_referal->connect_error);
    exit();
}


$search_string =  $_POST['referal'];

$search_string = $db_referal->real_escape_string($search_string);


	



   if (strlen($search_string) >= 1 && $search_string !== ' ') {
   	
    	$query = 'SELECT * FROM cydno2 WHERE Name LIKE "%'.$search_string.'%" OR IMO LIKE "%'.$search_string.'% LIMIT 10"';

      
        $search_string = $db_referal->real_escape_string($search_string);
        $result = $db_referal->query($query);

if ($_POST['dt'] == '1') {   
echo "<script type=\"text/javascript\"> alert(\" №1 \");</script>";
    while ($row = $result -> fetch_array()) {
   // 	$row->set_charset("cp1251");
     $str = $row['Name'];
   	    $str =  iconv('UTF-8','CP1251' ,$str); 
        echo "\n<li>".$str."</li>";    }
 
                         }
                         
if ($_POST['dt'] == '2') {
	
echo "<script type=\"text/javascript\"> alert(\" №2 \");</script>";
$search_str =  $_POST['vvvvv'];

$search_str = iconv('CP1251','UTF-8' ,$search_str); 

$query2 = "SELECT typesydno.Naumenovanie as type , Flag2.Name as flag, cydno2.IMO as imo, cydno2.GT as gt FROM `cydno2`, typesydno, Flag2 WHERE (cydno2.Name = '".$search_str."') AND (cydno2.Type = typesydno.Kod) and (cydno2.Flag = Flag2.Kod)";

        $search_str = $db_referal->real_escape_string($search_str);
        $result2 = $db_referal->query($query2);

   while ($row = $result2 -> fetch_array()) {
   	

$type = $row['type'];
                                          }
                           }
                                                          }
?>



И вот тут весь затык.

Тема первая, прошу не судить сильно за оформление.
Ответить с цитированием