API поиска ошибок POST

Немного экспериментирую с API OMDb. Успеваю искать фильм, но не с пробелами. Как только я использую пробел в своем поиске, он возвращает ноль.

Examples:

Search: Hot Return: {movieName: "Hot Fuzz"}

Search: Fuzz Return: {movieName: "Fuzz"}

Search: Hot Fuzz Return: {movieName: "No results"}

Search: Poet's Return: {movieName: "Poet's Pub"}

Search: Poet's Pu Return: {movieName: "No results"}

Я предполагаю, что пробел как специальный символ неправильно отформатирован, и поэтому появляется строка возврата по умолчанию. Я не могу понять, как это решить. Может ли кто-нибудь указать мне правильное направление?

HTML / JS:

<form id = "fetchFilm" method = "post">
    <input id = "searchString" type = "text" name = "searchString">
</form>

<br>

<p id = "mTitle"></p>

<script>
    $(function() {
        $('form').each(function(e) {
            $(this).find('input').keypress(function(e) {
                // Enter pressed?
                if (e.which == 10 || e.which == 13) {
                    e.preventDefault();
                    findFilm();
                }
            });
        });
    });

    function findFilm() {
        $.ajax({
            url: "movieFinder.php",
            type: "post",
            dataType: 'json',
            data: $('#searchString'), //Here is where I presume the problem may be.
            success: function(data){    
                var movieTitle = data.movieName;
                document.getElementById("mTitle").innerHTML = movieTitle;
            },  
        }); 
    }
</script>

PHP:

<?php

if (isset($_POST)) {

    function curl_get_contents($url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

    $searchString = $_POST['searchString'];

    $url = "https://www.omdbapi.com/?apikey=MyKey&t = ".$searchString;
    $movie_json = json_decode(curl_get_contents($url), true);

    $movie['movieName'] = $movie_json['Title'];

    if (!empty($movie['movieName'])) {
        //Do nothing
    } else {
        $movie['movieName'] = "No results";
    }

    echo
        json_encode(array(
            'movieName' => $movie['movieName']
        ))
    ;

}

?>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

$('#searchString') дает вам элемент, завернутый в jquery, а не входное значение. Попробуйте вместо этого:

data: $('#searchString').val()

Ответ принят как подходящий

В зависимости от получаемого результата попробуйте URL-кодировку строки поиска при ее применении в качестве параметра запроса:

Это будет работать: https://www.omdbapi.com/?apikey= & t = Горячий% 20Fuzz

Спасибо. Думаю, я действительно думал, что это был ответ (но не знал, что нужно искать "кодировку URL"), но, очевидно, нуждался в подстановочном знаке *, добавленном в поисковый запрос

Algernop K. 24.03.2018 19:23

Другие вопросы по теме