[risolto] Inviare un input radio assieme ad un link

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Buonasera a tutti,

ho un quesito particolare da porre

ho una tabella + o - strutturata cosi

PHP:
echo '<tr>';
echo 	'<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].''">'.$linea['nome'].'</a></td>
		<td>-</td>
               <td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&cognome='.$linea['cognome'].''">'.$linea['cognome'].'</a></td>
               <td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].''">Annulla</a></td>';

echo '</tr>';

Ora trlasciandoa cosa mi serve e per quale ragione la ho strutturata cosi avrei il bisogno di aggiungere degli input radio in un ulteriore

PHP:
echo '<td></td>';

come posso inviarli come variabile all'interno di uno dei due link quindi una cosa del genere?

PHP:
echo '<tr>';
echo 	'<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].'&RADIO=$RADIO'">'.$linea['nome'].'</a></td>
		<td>-</td>
               <td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&cognome='.$linea['cognome'].'&RADIO=$RADIO'">'.$linea['cognome'].'</a></td>
               <td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].''">Annulla</a></td>
<td><input radio><input radio></td>';

echo '</tr>';

E posssibile maggari con un javascript?

perchè ho provato a metterli sotto un form ma ovvimaente nona vendo un tasto invia il form non parte

Grazie
 
Non ho capito bene cosa vuoi fare, comunque la prova che hai fatto è piena di errori di sintassi dovuti alla mancata chiusura di alcune virgolette.

Provo a revisionartelo un po:
PHP:
echo '<tr>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].'&RADIO=$RADIO">'.$linea['nome'].'</a></td>';
echo '<td>-</td>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&cognome='.$linea['cognome'].'&RADIO=$RADIO">'.$linea['cognome'].'</a></td>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].'">Annulla</a></td>';
echo '<td><input type="radio"><input type="radio"></td>';
echo '</tr>';


Fammi sapre se così la tua tabella viene generata correttamente :fonzie:
 
flame grazie am ho cpoinciolalto il codice e modificando le variabili per renderlo più semplice ho saltato qualcosa.

La tabella si vede già correttamente e funge tutto

l'unico problema e che quando clicco su un valore che mi genera uno dei link come sopra avrei bisogno di inviare anche un input radio collegato a quella riga.
 
Si scusami, non ti ho detto che gli input radio li ho lasciati senza l'attributo name e senza un value, quindi è normale che non ti passino dei dati.
Prendo come riferimento il tuo $linea['nome'] per dare un valore di prova all'input radio

PHP:
echo '<tr>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].'&RADIO=$RADIO">'.$linea['nome'].'</a></td>';
echo '<td>-</td>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&cognome='.$linea['cognome'].'&RADIO=$RADIO">'.$linea['cognome'].'</a></td>';
echo '<td><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?select='.$_GET['select'].'&ass='.$linea['ass'].'&nome='.$linea['nome'].'">Annulla</a></td>';
echo '<td><input type="radio" name="riga" value="'. $linea['nome'] .'" /></td>';
echo '</tr>';

A questo punto non ho capito una cosa, l'input radio deve essere inviato col form o cliccando su uno dei link presenti sulla stessa riga?
 
si flame anche l'input radio l'ho buttato come esempio, nel mio codice è completo di name e di value

forse mi sono speigato male ma non soffermatrti su eventuali errori del codice postato su, perchè questo funziona, se vedi qualche mancanza sono errori di battitura,

vorrei riuscire a inviare anche l'input radio quando si clicca su uno dei link di quella riga

come esempio te lo scrivo semplificato e una riga sola
PHP:
echo '<tr>
<td><a href="http://www.miosito.com/index.php?nome=$nome>NOME</a></td>
<td><a href="http://www.miosito.com/index.php?cognome=$cognome>Cognome</a></td>
<td>Si<input type="radio" name="scelta" value="SI">No<input type="radio" name="scelta" value="NO"></td>
</tr>';

in sostanza su questa riga uno può cliccare su Nome o su Cognome e rimanda a quel link, vorrei aggiungere la possibilità su quella riga di scegliere si o no e inviarlo con la variabile perciò se seleziona si e clicca su nome deve rimandarlo al seguente link

http://www.miosito.com/index.php?nome=$nome&scelta=si

se sceglie nome e no

http://www.miosito.com/index.php?nome=$nome&scelta=no

se sceglie cognome e si

http://www.miosito.com/index.php?cognome=$cognome&scelta=si

se sceglie cognome e no

http://www.miosito.com/index.php?cognome=$cognome&scelta=no

quelle variabile $nome e $cognome sono ricavate da un while e quindi ho anche un $linea['id'] per creare l'associazione dell'input radio alla riga selezionata ma non ho idea di come fare

spero die ssere stato più chiaro
 
Hai ragione, mi sa che il lunedì non m'ha fatto bene per niente :dormo:

Comunque, non sapendo se usi o meno jquery ti ho scritto una soluzione veloce in javascript.
Ti consiglio di piazzarla a fondo pagina, subito prima della chiusura del tag body.

HTML:
<script>
var radios = document.querySelectorAll('input[name="scelta"]');
var anchors = document.querySelectorAll('td a');

for (var i = 0; i < radios.length; ++i) {
    radios[i].onclick = function(){
        for (var a = 0; a < anchors.length; ++a)
        {
            if (typeof anchors[a].originalUrl == 'undefined')
                anchors[a].originalUrl = anchors[a].href;
            
            anchors[a].href = anchors[a].originalUrl +'&scelta='+ document.querySelector('input[name="scelta"]:checked').value;
        }
    };
}
</script>

Un paio di cose, il selettore dell'input radio non dovrebbe avere problemi, quello per le anchor è molto generico e recupera tutti i link che sono contenuti in una cella. Se ti puoi permettere di definire un class preciso per identificare quei link e definire il selettore in un modo simile..
Codice:
var anchors = document.querySelectorAll('a.classCheHoAssegnato');
..sarebbe meglio.

Lo script sostanzialmente crea un evento su tutti i radio input indicati e, nel momento in cui ne clicchi uno, raccoglie il valore di quello selezionato e appende il contenuto nel tag href di tutte le anchor specificate.

Fammi sapere se questa volta ci ho preso!
 
niente non riescoa farlo funzionare

ma non ci sarebbe un modo per far convivere l'invio di variabili tramite GET e tramite POST?

perchè potrei inserire un form all'inpuit radio assegnandogli l'id della riga e dovrebbe funzionare.

p.s

nel s erver ho caricato jquey
 
avevo commesso un errore nella pagina .

Lo script funziona.

grazie flame.
 

Discussioni simili