まず、smarty で書いていますので、コーディングスタイルはその点に注意してください。それは私の選択ではありませんが、私が強制されているものです。
リンクへのクリック機能を含めるために nivo バナー スライダーを改造しています。ここに問題があります。各スライドからダイアログ ボックスにスライド変数を渡す必要があります。ここでの目標は、ユーザーが必要に応じて各スライドへのリンクを更新できるように、ダイアログ ボックスを用意することです。ページは次のようになります: http://griff4594.com/images/5-14-2013%209-05-41%20AM.png
コードは次のとおりです。
{literal}
<script type="text/javascript" language="javascript">
function LinkUpload() {
var id = $(this).attr("rel");
$("#link-upload").dialog();
alert($id);
}
</script>
{/literal}
{if $slides}
<div class="ss_slides">
<ul class="ss_slides">
{foreach from=$slides item=slide}
<li id="slide_{$slide.slideid}">
<table class="ss_slides">
<tr>
<td class="ss_slides_image">
<img src="../slide-shows/{$slide.slideid}.{$slide.extention}" class="ss_thumb" />
<div class="ss_toolBox"><a href="#" class="ss_delete" SlideID="{$slide.slideid}" CTLID="#slide_{$slide.slideid}"><img src="uploadify/cancel.png" /></a></div>
</td>
</tr>
<tr>
<td>
<input type="hidden" id="{$slide.slideid}" rel="{$slide.slideid}" value="{$slide.slideid}"><button type="button" onclick="LinkUpload()">Slide Link {$slide.slideid}<$
</td>
</tr>
</table>
</li>
{/foreach}
</ul>
</div>
{foreach from=$slides item=v}
<div class="link-upload" title="Update Image Link" id="link-upload">
<p>Insert the link address you wish this Slide/Banner to link to when clicked.</p>
<form action="link_upload.php" method="POST">
Link: <input type="text" size="40" name="link" value="{$v.link}"><br />
<input type="submit" value="Update Link" name="update_link">
</form>
</div>
{/foreach}
{/if}
変数 $slide から取得した配列を次に示します。これを参照できます。
Array (5)
0 => Array (6)
link => "http://google.com"
slideid => "2"
filename => "image235367.png"
extention => "PNG"
slideshowid => "1"
iorder => "3"
1 => Array (6)
link => "http://pvponline.com"
slideid => "5"
filename => "400x390px-LL-e49a9db0_2694-nooooooooo..."
extention => "JPEG"
slideshowid => "1"
iorder => "2"
2 => Array (6)
link => "http://etrade.com"
slideid => "6"
filename => "38783834021_large.jpg"
extention => "JPG"
slideshowid => "1"
iorder => "4"
3 => Array (6)
link => null
slideid => "7"
filename => "a.gif"
extention => "GIF"
slideshowid => "2"
iorder => "0"
4 => Array (6)
link => null
slideid => "8"
filename => "alpha.jpg"
extention => "JPG"
slideshowid => "2"
iorder => "0"
そのため、現在ダイアログ ボックスがポップアップし、データベースからの URL が表示されますが、ID によって正しく表示されません。次のように、クリックされたスライドに表示されないことを意味します。
私が欲しいのは、スライド 1 をクリックすると、ボックス内にリンクが表示されたダイアログ ボックスがポップアップすることです。しかし、今はランダムなものを引き上げているだけです。誰かが私を正しい方向に向けることができますか?