Перейти к публикации

Sinatra

новички
  • Публикации

    9
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Sinatra

  1.  А как заменить команду execute

    function prepareStatement( $sql, $params = null ) {
        global $db;
        $stmt = $db->safesql($sql);
        if (!empty($params) && is_array($params)) {
            $count = count($params);            
            $bindStr = str_repeat('s', $count);
            $stmt->bind_param($bindStr, ...$params);
        }
        if ($stmt->execute()) {
            return $stmt;
        }
    }

     

  2. Сайт: http://prompostavka.kz
    Я новичок в php, а также ajax-любознательный.

    Пишу локально модуль, возникла проблема, которую я не могу разобрать.
    В шаблоне делается ajax запрос к файлу select.php на выборку из базы

    <script>
    $('document').ready(function() {
        $('#country').change(function() {
            var country_id = this.value;
            $.ajax({
                type: "POST",
                url: "/engine/ajax/select.php",
                data: { country_id: country_id },
                cache: false,
                success: function(result){
                    $('#region').html(result);
                }
            });
        });    
        $('#region').change(function() {
            var region_id = this.value;
            $.ajax({
                type: "POST",
                url: "/engine/ajax/select.php",
                data: { region_id: region_id },
                cache: false,
                success: function(result){
                    $('#city').html(result);
                }
            });
        });
    });
    </script>
    
    <form action="" method="POST">
     <select id="country">
      <option value="0">выберите страну</option>
      <option value="1">страна1</option>
      <option value="2">страна2</option>
      <option value="3">страна3</option>
     </select>
     <select id="region"></select>
     <select id="city"></select>
    </form>

    Содержимое файла select.php

    if(!defined('DATALIFEENGINE')) {
        header( "HTTP/1.1 403 Forbidden" );
        header ( 'Location: ../../' );
        die( "Hacking attempt!" );
    }
    if(!empty($_POST["country_id"])){ 
        $country_id = $_POST['country_id'];
        $result = $db->query("SELECT * FROM " . USERPREFIX . "_geo_regions WHERE country_id='$country_id'");
        if($result->num_rows > 0){ 
            echo '<option value="">выберите регион</option>';
            while ($row = $db->get_row( $result )) {
                echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
            }
        }else{ 
            echo '<option value="">регионы отсутствуют</option>'; 
        }
    } else if (!empty($_POST["region_id"])){
        $region_id = $_POST['region_id'];
        $result = $db->query("SELECT * FROM " . USERPREFIX . "_geo_cities WHERE region_id='$region_id'");
        if($result->num_rows > 0){ 
            echo '<option value="">выберите город</option>';
            while ($row = $db->get_row( $result )) {
                echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
            }
        }else{ 
            echo '<option value="">города отсутствуют</option>'; 
        } 
    }

    В итоге ajax запрос дублирует код всей html страницы и вставляет в <select>
    Насколько я понимаю это происходит из-за кода в начале файла

    if(!defined('DATALIFEENGINE')) {
        header( "HTTP/1.1 403 Forbidden" );
        header ( 'Location: ../../' );
        die( "Hacking attempt!" );
    }

    Если его убрать, то ничего не происходит.
    Подскажите как реализовать данное решение?

×
×
  • Создать...