我正在尝试使用jQuery加载一个图像(用
PHP创建)并用它传递一些变量(例如:picture.php?user = 1& type = 2& color = 64).这很容易.
困难的部分是我有一个下拉列表,它使我能够选择背景(类型参数),我将有一个输入,例如选择一种颜色.
这是我面临的问题:
>如果没有触及下拉/输入,我想将其从URL中删除.
>如果触摸了下拉菜单/输入,我想将其包含在网址中. (这不会仅仅通过在预先存在的字符串中添加变量“& type = 2”来工作,就好像我会多次触摸下拉/输入一样(& type = 2& type = 2& type) = 3)).
>将变量(“& type = 2” – 请参阅下面的代码)添加到预先存在的URL时,& -sign将消失(它变为如下所示:“signature.php?user = 1type = 2”) .
这是jQuery的代码:
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");
});
}
这是我加载图像的代码:
我不知道我能进一步解释我的问题.如果您有任何疑问或需要更多代码,请告诉我.
谢谢您的帮助!
编辑:
这是当前的代码:
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;
}
EDIT2:
这是signatureload.php的代码
$url = "signature.php?";
$count = 0;
foreach($_GET as $key => $value)
{
if($count > 0) $url .= "&";
$url .= "{$key}={$value}";
}
echo "";
?>