Я пытаюсь загрузить изображение (созданное с помощью PHP) с помощью jQuery и передавая ему несколько переменных (например: picture.php?user=1&type=2&color=64
). Это легкая часть.Динамически загружать изображение с разными параметрами GET
Жесткая часть состоит в том, что у меня есть выпадающий список, который позволяет мне выбирать фон (параметр типа), и у меня будет вход, например, для выбора цвета.
Here're проблемы я столкнулся:
- Если выпадающий/вход не трогали, я хочу, чтобы оставить его из URL.
- Если вы выбрали выпадающий список/вход, я хочу включить его в URL-адрес. (Это не сработает, просто добавив переменную «
&type=2
» в существующую строку, как если бы я касался выпадающего меню/ввода несколько раз, когда они будут складываться (&type=2&type=2&type=3
)). - При добавлении переменной («
&type=2
» - см. Код ниже) до уже существующего URL-адреса & -sign исчезает (он выглядит примерно так: «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>
Я не знаю, как еще дальше, я мог объясните мою проблему. Если у вас есть какие-либо сомнения или требуется больше кода, пожалуйста, дайте мне знать.
Благодарим за помощь!
EDIT:
Вот текущий код:
<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>";
?>
У вас остались проблемы? Все еще нет & в сгенерированном URL-адресе? Как выглядит текущий код при создании? (это не код на стороне сервера) – NiKiZe
@NiKiZe @noam signatureload.php генерирует код с помощью параметров и здесь выходы из него после того, как я изменил выделение в выпадающем меню: '' –
Но это это скрипт .php, как он выглядит, когда вы просматриваете источник в браузере? (Я хочу знать, где & потеряно, это когда страница сгенерирована или это что-то еще, когда выполняется javascript) – NiKiZe