jQuery を使用してイメージ (PHP で作成) をロードし、いくつかの変数を渡そうとしています (例: picture.php?user=1&type=2&color=64
)。それは簡単な部分です。
難しいのは、背景 (型パラメーター) を選択できるドロップダウンがあり、たとえば色を選択するための入力があることです。
私が直面している問題は次のとおりです。
- ドロップダウン/入力に触れていない場合は、URL から除外したいと考えています。
- ドロップダウン/入力に触れた場合は、それを URL に含めたいと思います。(これは、変数 "
&type=2
" を既存の文字列に追加するだけでは機能しません。まるでドロップダウン/入力に数回触れてスタックします (&type=2&type=2&type=3
))。 &type=2
既存の URL に変数 (" " - 以下のコードを参照) を追加すると、& 記号が消えます ("signature.php?user=1type=2
" のようになります)。
jQuery のコードは次のとおりです。
<script>
var url = "signatureload.php?user=<?php echo $_SESSION['sess_id']; ?>";
$(document).ready(function() {
window.setTimeout(LoadSignature, 1500);
});
$("#signature_type").change(function() {
url += "&type="+$(this).val();
LoadSignature();
});
function LoadSignature()
{
$("#loadingsignature").css("display", "block");
$('#loadsignature').delay(4750).load(url, function() {
$("#loadingsignature").css("display", "none");
});
}
</script>
画像をロードするコードは次のとおりです。
<div id="loadsignature">
<div id="loadingsignature" style="display: block;"><img src="img/loading-black.gif" alt="Loading.."></div>
</div>
私の問題をさらに詳しく説明できるかわかりません。ご不明な点がある場合、または追加のコードが必要な場合は、お知らせください。
ご協力ありがとうございました!
編集:
現在のコードは次のとおりです。
<script>
var url = "signatureload.php?user=<?php echo $_SESSION['sess_id']; ?>";
$(document).ready(function() {
window.setTimeout(LoadSignature, 1500);
});
$("#signature_type").change(function() {
url = updateQueryStringParameter(url, 'type', $(this).val());
LoadSignature();
});
function LoadSignature()
{
$("#loadingsignature").css("display", "block");
$('#loadsignature').delay(4750).load(url, function() {
$("#loadingsignature").css("display", "none");
});
}
function updateQueryStringParameter(uri, key, value)
{
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"),
separator = uri.indexOf('?') !== -1 ? "&" : "?",
returnUri = '';
if (uri.match(re))
{
returnUri = uri.replace(re, '$1' + key + "=" + value + '$2');
}
else
{
returnUri = uri + separator + key + "=" + value;
}
return returnUri;
}
</script>
EDIT2:
signatureload.php のコードは次のとおりです。
<?php
$url = "signature.php?";
$count = 0;
foreach($_GET as $key => $value)
{
if($count > 0) $url .= "&";
$url .= "{$key}={$value}";
}
echo "<img src='{$url}'></img>";
?>