Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    c'è un piccolo ma sostianziale problema:

    se nella stessa pagina ci sono più di un link che si servono della funzione per creare la stringa href, anche se cambiano diverse variabili nell'url di destinazione...

    succede una cosa del genere:

    l'ur corrente ha tipo ...&lang=ita&...

    il primo link che c'è nella pagina effettua il cambiamento ...&lang=eng&...

    il secondo link della pagina effettua l'aggiunta ...&orderBy=data

    Però il secondo link parte naturalmente dalle nuove var get che fino a quel punto sono state cambiate dai link precedenti..

    e quindi il secondo link portera con se non &lang=ita, ma &lang=eng perchè la var lang è stata cambiata dal primo link...

    quindi devo trovare un modo per partire sempre dall'url originale oppure invocare la funzione php solo se si clicca sul link, cosi gli altri precedenti non effettuano cambiamenti sulle var...

    non so se mi sono fatto capire....

    pensavo ad usare javascript... oppure smanetto con la sessione e cercando un modo per ricostruire gli url non tramite un foreach sulle get ma su array che partono dalla query string e la divide con i separatori & e =....

    voi che dite? che mi suggerite?

  2. #12
    Ragazzi.. ci sono riuscito !

    Posto per verifica in caso qualcuno noti qualcosa da migliorare e per chi cerca una soluzione per questo problema..

    Codice PHP:
    function url($nomeVar,$valore,$dirRoot){
    $urlAdminCorrenteNoQueryStr=$dirRoot 'admin.php';
    $queryStringOriginale=$_SERVER['QUERY_STRING'];

    $arrayUno explode("&"$queryStringOriginale);
    $numVar=count($arrayUno);
    for (
    $y=0$y<$numVar$y++){
        
    $varCorrente=$arrayUno[$y];
        
    $arrayVarCorrente explode("="$varCorrente);
        
    $key=$arrayVarCorrente[0]; 
        
    $val=$arrayVarCorrente[1]; 
        if(
    $key==$nomeVar){$val=$valore;}
        
    $nuovaQueryString .= $key.'='.$val.'&';
    }
    #for

    $nuovaQueryString=substr($nuovaQueryString,0,-1);
    echo 
    $urlFinale=$urlAdminCorrenteNoQueryStr."?".$nuovaQueryString;

    }
    #function 
    Codice PHP:
    [url="<? url('lang','eng',$dirRoot);?>"]ENG[/url]
    ...
    [url="<? url('orderBy','Titolo',$dirRoot);?>"]Titolo[/url]
    ...
    [url="<? url('orderBy','Data',$dirRoot);?>"]Data[/url]
    ...
    ...

  3. #13
    Due modifiche:

    1. con lo script del post precedente la var passata dalla chiamata url(..) sostituiva solamente se tale var esisteva nella query string corrente. Se era una nuova var da aggiungere non la aggiungeva.

    2. ho aggiunto una ulteriore variabile da passare (per aggiungere o modificare)

    Codice PHP:
    function url($nomeVar1,$valore1,$nomeVar2,$valore2,$dirRoot){
    $urlAdminCorrenteNoQueryStr=$dirRoot 'admin.php';
    $queryStringOriginale=$_SERVER['QUERY_STRING'];

    $arrayUno explode("&"$queryStringOriginale);
    $numVar=count($arrayUno);
    for (
    $y=0$y<$numVar$y++){
        
    $varCorrente=$arrayUno[$y];
        
    $arrayVarCorrente explode("="$varCorrente);
        
    $key=$arrayVarCorrente[0]; 
        
    $val=$arrayVarCorrente[1]; 
        if(
    $key==$nomeVar1){$val=$valore1;}
        if(
    $key==$nomeVar2){$val=$valore2;}
        
    $nuovaQueryString .= $key.'='.$val.'&';
    }
    #for

    if (stristr($nuovaQueryString$nomeVar1."=")==false){$nuovaQueryString .= $nomeVar1.'='.$valore1.'&';}
    if (
    stristr($nuovaQueryString$nomeVar2."=")==false){$nuovaQueryString .= $nomeVar2.'='.$valore2.'&';}

    $nuovaQueryString=substr($nuovaQueryString,0,-1);
    echo 
    $urlFinale=$urlAdminCorrenteNoQueryStr."?".$nuovaQueryString;

    }
    #function 
    Codice PHP:
    [url="<? url('orderBy','Data','sort','asc',$dirRoot);?>"]Data[/url]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.