これが私がやっていることです。
Twitter のユーザーが tweetbot クライアントから私の Web サイトに画像をアップロードする Web サイトを構築しています。私のアプリケーションは、tweetbot から写真を取得し、racskpace クラウド サーバーにアップロードします。私はそれをすべて成功させました。現在、次のようなユーザー インターフェイスを設計中です。Webアップローダーもあります。
Web アップローダーは正常に動作します。私が欲しいのは、以下の3つの画像に注意してください。ライブに変えてほしい。たとえば、ユーザーが tweetbot クライアントを介して写真をアップロードした場合、写真はここに表示されます。アップロード プロセスはすべて、ファイル /api/index.php で行われます。したがって、ユーザーがアップロードするたびにファイル /api/index.php が実行され、UI がそれをライブで反映するように、そこにコードを挿入する必要があります。
だから私はこれを行うためにAJAXを少し掘り下げました。/api/index.php に次の関数を含めました
<script type="text/javascript">
function showPhoto(str) {
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
$shortenedurl = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "getphoto.php?q=" + str, true);
xmlhttp.send();
}
</script>
また、 /api/index.php ファイルの最後に showPhoto($shortenedurl) を追加して関数を実行しました
getPhoto.php は次のようになります。
<?php
$q=$_GET["q"];
$con = mysql_connect("","","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("", $con);
$result = mysql_query("SELECT * FROM tblphoto WHERE shorturl = '$q'");
$row = mysql_fetch_array( $result );
$tweet = $row['tweet'];
$sn = $row['user'];
$thumb = $row['thumb'];
mysql_close($con);
?>
<div class="one-third column feature">
<h2>
<?php echo $sn; ?>
</h2>
<img src=<?php echo $thumb; ?>/>
<p>
<?php echo $tweet; ?>
</p>
</div>
<div class="one-third column feature">
<h2>Two</h2>
<img src="http://lorempixum.com/400/100/nature/2" />
<p>Lorem ipsum dolor sit amet...</p>
</div>
<div class="one-third column feature">
<h2>Three</h2>
<img src="http://lorempixum.com/400/100/nature/3" />
<p>Lorem ipsum dolor sit amet...</p>
</div>
次に、UI の index.html に getPhoto.php を含めます。
また、データベースをループして、一度に 3 つの画像だけを表示できるようにしたいと考えています。したがって、ユーザーが写真をアップロードすると、一番左の写真が最新の写真に変更されます。前の一番左が位置 2 になり、前の中央が位置 3 になります。一番右の写真は破棄されます。
現在、スクリーンショットのように何も表示されていません。正しい方向にいますか、それとも間違っていますか?