У меня есть поле ввода, где ожидаемое значение - это ссылка на youtube. Мне нужно сделать так, чтобы после ввода ссылки вовнутрь на ввод автоматически показывался div, который я создал (который показывает миниатюру, название и описание видео) без перезагрузки страницы.Показать div, если входное значение выполнено без перезагрузки страницы
Вот HTML код для ввода и где DIV должен быть размещен:
<div class="formRow">
<div class="grid2"><label>Link</label></div>
<div class="grid10" style="position:relative">
<input name="link" type="text" placeholder="Link to the video..." />
</div>
<div class="clear"></div>
</div>
<!-- THE FOLLOWING PHP CODE CONTAINS THE DIV THAT NEEDS TO BE SHOWN -->
<?php
$url = $_POST['link'];
parse_str(parse_url($url, PHP_URL_QUERY), $youtube_id);
define('YT_API_URL', 'http://gdata.youtube.com/feeds/api/videos?q=');
$video_id = $youtube_id['v'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, YT_API_URL . $video_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$feed = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($feed);
$entry = $xml->entry[0];
if(!$entry) { exit('Error: No such video exists.'); }
$media = $entry->children('media', true);
$group = $media->group;
$title = $group->title;
$desc = $group->description;
$thumb = $group->thumbnail[0];
list($thumb_url) = $thumb->attributes();
$content_attributes = $group->content->attributes();
$vid_duration = $content_attributes['duration'];
$duration_formatted = str_pad(floor($vid_duration/60), 1, '0', STR_PAD_LEFT) . ':' . str_pad($vid_duration%60, 1, '0', STR_PAD_LEFT);
$image = WideImage::load('' . $thumb_url . '');
$resizedImage = $image->resize(320, 180, 'outside')->crop('center', 'middle', 320, 180);
$resizedImage->saveToFile("../../assets/video_images/" . $video_id . ".jpg");
echo '<div class="preview-container">
<div class="preview-image">
<img src="../../assets/video_images/' . $video_id . '.jpg" width="185" height="104" />
<div class="preview-timestamp">' . $duration_formatted . '</div>
</div>
<div class="preview-title"><a href="https://www.youtube.com/watch?v=' . $video_id . '">' . $title . '</a></div>
<div class="preview-desc">' . $desc . '</div>
<div class="clear"></div>
</div>';
?>
Итак, еще раз, что мне нужно, чтобы это сделать после того, как ссылка на YouTube был введен в поле ввода, он должен автоматически отображать div, который повторяется в PHP-коде, не обновляя страницу (используя AJAX и т. д.).
Пожалуйста, помогите.
Похоже, вы хотите опубликовать ввод и вернуть HTML-контент с помощью AJAX. Для jQuery см. Http://api.jquery.com/jQuery.ajax/ для спецификаций и примеров. Для чистого javascript попробуйте http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery. Если у вас есть проблемы, пожалуйста, обновите свой вопрос с помощью кода, который вы пробовали, и что пошло не так. – showdev
связывает вход с событием 'propertychange', где вы можете сделать ajax-вызов. – user1