1

(5 відповідей, залишених у Обговорення)

Підкажіть, яким способом найкраще отримувати гроші від замовника з за кордону?

В мене все чудово працює з цим

        $trans = [ "q" => "й", "w" => "ц", "e" => "у", "r" => "к", "t" => "е", "y" => "н", "u" => "г", "i" => "ш",
         "o" => "щ", "p" => "з", "[" => "х", "]" => "ъ", "a" => "ф", "s" => "ы", "d" => "в", "f" => "а", "g" => "п",
          "h" => "р", "j" => "о", "k" => "л", "l" => "д", ";" => "ж", "'" => "э", "z" => "я", "x" => "ч", "c" => "с",
           "v" => "м", "b" => "и", "n" => "т", "m" => "ь", "," => "б", "." => "ю", "Q" => "Й", "W" => "Ц", "E" => "У",
            "R" => "К", "T" => "Е", "Y" => "Н", "U" => "Г", "I" => "Ш", "O" => "Щ", "P" => "З", "A" => "Ф", "S" => "І",
             "D" => "В", "F" => "А", "G" => "П", "H" => "Р", "J" => "О", "K" => "Л", "L" => "Д", "Z" => "Я", "X" => "Ч",
              "C" => "С", "V" => "М", "B" => "И", "N" => "Т", "M" => "Ь" ];
         $par = strtr($par, $trans);

Є текстове поле, починаючи з введення перших двох літер, з'являється випадаючий список міст, які починаються на ваші літери. В БД міста записані кирилицею. Тож зараз система працює тільки при введені літер кирилецею. Потрібно реалізувати пошук, коли, наприклад на англ. розкладці пишеш "rb]d" знаходить "київ". Сайт написаний на Yii.

Код запиту до БД:

$dbC = Yii::app()->db->createCommand();
        $dbC->setFetchMode(PDO::FETCH_OBJ);
        $dbC->select("net_city2.name_ru, population, country_id, code")
        ->from('net_city2, net_country')
        ->where("net_city2.name_ru LIKE '$par%' AND country_id=net_country.id AND code='$location'")
        ->order('population DESC');
        foreach ($dbC->queryAll() as $row) {
            $return[] = $row->name_ru;
        }

Де '$par%' це ці перші літери.
Я поки не знайшов як це реалізовується, може хтось знає як це можна зробити? Або може це взагалі справа JS?

Є таблиця City з колонками id, country_id, name_ru, population. country_id привязане до таблиці NetCountry. Як отримати назви міст відсортовані по кількості населення(population)?

$result = NetCountry::model()
        ->with(array('city'=>array('alias'=>'c')))
            ->find("c.name_ru like '$par%'");
//$par% - це змінна, що містить перші літери по яких шукається місто.
        if($result){
            if($city = $result->city){
                foreach($city as $key=>$val){
                $return[] = $val->name_ru;
                };
            };
$return = array_unique($return);
echo json_encode($return);

5

(5 відповідей, залишених у Інше)

До того ж нові друзі-колеги ніколи не завадять)

6

(5 відповідей, залишених у Інше)

Так, але мені потрібен наставник, який вже працює в цій галузі, може порадити що треба в першу чергу знати, вміти. Підкине якесь завдання, якщо потрібно порадить, як його виконати, розбере зі мною мої помилки та поясне що до чого.

7

(5 відповідей, залишених у Інше)

Привіт! Є два варіанти як ви можете допомогти)

1. Допомогти мені в розвитку, скоригувати, стати наставником. Я розвиваюся в напрямку веб розробки, роблю акцент на JavaScript. Трохи менше року вивчаю JS, вивчив HTML, CSS, поверхнево освоїв mySQL, JQuery, AngularJS, Git...
Про себе скромно скажу, що я дуже цілеспрямований) Наразі більше 6 міс працюю контент-менеджером, у вільний час на роботі і після роботи стараюсь активно вчитися. Мій репозиторій на гітхабі https://github.com/Wsewlad

2. Стати наставником проекту. Я, під наставництвом свого друга, пів року тому почав писати україномовний сайт для створення і розгадування кросвордів. Вже дещо написав, але потім в друга забракло часу, та й в нього інший напрямок (С++), тож він не міг приділяти мені достатньо часу. І проект зупинився. Зараз в мене з’явилося пара друзів-колег і ми вирішили його продовжити. Але потрібний керівник з досвідом. Ось посилання на проект https://github.com/Wsewlad/Peretyn


Якщо вам цікаво, пишіть обговоримо більш детально.
Мої контакти:
wladyslawfil@gmail.com
https://www.facebook.com/vladyslav.fill

Зараз динамічно створюється таблиця, в кожній комірці якої знаходиться input, йому потрібно присвоїти події. Зараз це робиться під час створення таблиці.

function writetable () {
    var mytable = document.getElementById("field");
    var table = document.createElement("table");
    for (var r = 0; r < 30; r++) {
        var row = document.createElement("tr");
        table.appendChild(row);
        for (var c = 0; c < 30; c++) {
            var cell = document.createElement("td");
            row.appendChild(cell);
            var inp = document.createElement("input");
            cell.appendChild(inp);
// Тут починаю присвоювати події
            inp.setAttribute("id", "r" + r + "_" + "c" + c);
            inp.setAttribute("class", "tbl_input");
            inp.setAttribute("onmouseenter", "onmouseenter_color(" + r + "," + c + ")");
            inp.setAttribute("onmousedown", "onmousedown_color(" + r + "," + c + ")");
            inp.setAttribute("onmouseup", "onmouseup_color(" + r + "," + c + ")");
            inp.setAttribute("maxlength", "1");
            inp.setAttribute("onclick", "select_wordplace(" + r + "," + c + "), del_btn(this, " + r + "," + c + ")");
        }
    }
    mytable.appendChild(table);
}
writetable();

Думаю, може краще реалізувати присвоєння через addEventListener, щоб лишити html чистішим, як вважаєте чи є сенс та чи вплине це на швидкість?

9

(3 відповідей, залишених у PHP)

На сторінці пише такий масив https://drive.google.com/open?id=0BzkLH … mx3TzFZa2s

10

(3 відповідей, залишених у PHP)

$sql = "SELECT Wordplace.row, Wordplace.col, Wordplace.direction, Wordplace.wordLength, 
TemplateToWordplace.template_id FROM Wordplace INNER JOIN 
TemplateToWordplace ON TemplateToWordplace.wordplace_id=Wordplace.id AND TemplateToWordplace.template_id=".$_GET["id"]; 
 // Створюємо вибірку з БД
            $result = $conn->query($sql); // Виконуємо вибірку

                if ($result->num_rows > 0) { // Якщо результатом вибірки є 
більш ніж один рядок, то створюємо масив об’єктів (За допомогою php пишемо JS код) 
з якого будемо вимальовувати шаблон
                print "<script>";
                print " var template = [";
                    while($row = $result->fetch_assoc()) {
                    print "{
                            column: ". $row['col'].",
                            direction: ".$row['direction'].",
                            row: ".$row['row'].",
                            wordLength: ".$row['wordLength']."
                        },";
                    }
            print "]; ";
                    print "draw_template_from_array();"; // Вимальовуємо шаблон
                    print "</script>";
                } else {
                    echo "0 results";
                }

Зараз виходить записати масив об’єктів, але коли дивишся на код сторінки, то виходить величезний стовпчик хард коду. Чи можна його зробити якось не хард кодом?)

11

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Так думали щось нове додати, але вже задумались над тим, щоб лишити php.

12

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

ktretyak написав:

Для чого вам той "чистий" ES5? Воно вам треба? ... І взагалі, почніть з малого чогось, в процесі ви самі зрозумієте що ви хочете/можете. А якщо починатимете зі складного проекта, то вам не уникнути відомої проблеми "відкладання на потім", або й взагалі можете закинути цю справу.

Це як їхати на машині: якщо ви зі старту увімкнете зразу високу передачу, то навіть при максимумі "газу", в кращому разі, ви просто будете котитись, а не їхати, або й заглохнете (перевірено на собі). Треба починати, як належить, з першої, на другу, потім на третю... В такому разі буде найбільша динаміка розгону.

Ну власне... ) Так і сталось, я цей проект почав пів  року тому під менторством мого друга. Почав писати на ES5 і PHP. Вже дещо написав. А потім в друга забракло часу і проект пару місяців тому зупинився. Зараз знайшлось пару нових друзів, мого ж рівня і ми думаємо його воскресити, тільки замінивши php на nodejs.

Підкажіть, ми з друзями починаємо писати проект - сайт для створення та розгадування кросвордів (На чистому ES5 та NodeJS). Наразі планується створити:

  • функціонал для створення шаблонів кросвордів

  • сторінка з переліком створених шаблонів,

  • сторінки з базою слів,

  • з питаннями..

.
Думаємо писати односторінковим застосунком (з Ajax) чи сторювати окремо сторінки. Що можете порадити, які переваги односторінкових застосунків?

Перевизначену toString, можна викликати так before.constructor.prototype.toString();

Тут https://developer.mozilla.org/en-US/doc … instanceof пишуть, що значення оператора instanceof може змінитися, через зміну прототипу нашого конструктора. Але наш примірник before все ще має в своєму ланцюгу прототипів конструктор Shape2D. Це можна перевірити в консолі.

let before = new Shape2D();

Об’єкти, які створенні за допомогою конструктора, успадковують властивості батьківського конструктора та прототипу Object.prototype. При цьому пріоритет мають властивості конструктора. 

Shape2D.prototype = new Shape();

Тут ти присвоюєш прототипу наслідування з нового конструктора і надаєш йому найвищу пріоритетність, прицьому властивість "name" в об’єкті Shape2D - є власною , а не спадковою, тому вона має вищій пріоритет ніж та ж властивість з прототипу.

Хочу, щоб для before теж викликалась перевизначена toString. І для всіх інших раніше створених об'єктів також.

Можна створити або перезаписати властивості оригінала об’єкта, але не можливо змінити весь ланцюг, який передував йому. Спадкування дозволяє викликати, але не змінювати властивості об’єкта, це є ключовою перевагою JS, бо дозволяє вибірково переписувати спадкові властивості, не руйнуючи попередній функціонал.

Мені потрібно перевірити чи значення в рядку "row, col, direction, wordLength" не повторюються, якщо повторюються, то просто отримати id цього рядка, якщо ж не повторюються, то вставити нові та теж отримати його id. (MySQLi Object-oriented)

Малюю кросворд, координати словомісць переводжу в json, в php роблю json_decode, та ці координати вставляю до БД в таблицю Wordplace. В цій таблиці стоїть CONSTRAINT uc_Wordplace UNIQUE (row, col, direction, wordLength). Як перед вставленням координат перевіряти чи такий рядок вже існує, якщо існує, то отримати його id, якщо не існує, то вставити його та отримати id?

//Вставляю кординати словомісць в таблицю Wordplace
    foreach($json['wordplaces'] as $item) {
        
        $stmt = $conn->prepare("INSERT INTO Wordplace (row, col, direction, wordLength) VALUES (?, ?, ?, ?)");
        $stmt->bind_param("iiii", $Wrow, $Wcol, $Wdirection, $WwordLength);

        $Wrow = $item['row'];
        $Wcol = $item['column'];
        $Wdirection = $item['direction'];
        $WwordLength = $item['wordLength'];
        $stmt->execute();
        
        //Отримую id кожного всталеного словомісця
        $Wordplace_id = $conn->insert_id;
        print "New Wordplace has id " . $Wordplace_id;
        
        $stmt->close();

Попередній код не спрацював.  user-drag: none; - не підтримується в Firefox, а ось так працює)

    <head>
    <style>
    input{  
      -moz-user-select: none;
    }
    </style>
    </head>
    <body>
    <table>
        <tr><td><input onmousedown="d(1)" onmouseenter="e(1)"/></td>
        <td><input onmousedown="d(1)" onmouseenter="e(1)"/></td></tr>
        <tr><td><input onmousedown="d(2)" onmouseenter="e(2)"/></td>
        <td><input onmousedown="d(2)" onmouseenter="e(2)"/></td></tr>
    </table>
    <script>
        function d(n) {
            console.log("down " + n);
        }
     
        function e(m) {
            console.log("enter " + m);
        }
    </script>
    </body>

У Firefox, при затисненій лівій клавіші миші ( подія onmousedown)  не спрацьовує подія onmouseenter , а в Chrom-і працює. Чому так, і як зробити, щоб запрацювало в Firefox?

<table>
    <tr><td><input onmousedown="onmousedown_color(1)" onmouseenter="onmouseenter_color(1)"/></td>
    <td><input onmousedown="onmousedown_color(1)" onmouseenter="onmouseenter_color(1)"/></td></tr>
    <tr><td><input onmousedown="onmousedown_color(2)" onmouseenter="onmouseenter_color(2)"/></td>
    <td><input onmousedown="onmousedown_color(2)" onmouseenter="onmouseenter_color(2)"/></td></tr>
</table>
<script>
    function onmousedown_color(n) {
        console.log(n);
    }

    function onmouseenter_color(m) {
        console.log(m);
    }
</script>