Modificare riga se la checkbox è selezionata

paolo.grafiche

Nuovo Utente
20 Feb 2012
4
0
0
Ciao a tutti,
ho creato un piccolo gestionale ma mi si pone il problema di dover inserire un qualcosa che mi consenta di modificare diverse righe, mi spiego meglio ho una pagina che tramite query mi stampa dei risultati ad ogni risultato è associata una checkbox che mi dovrebbe servire a selezionare i risultati e associarli tramite modifica ad un'operatore. riesco a recuperare gli array che passo tramite checkbox ma non ho idea di come farli modificare insieme o per meglio dire ci ho provato in mille modi ma senza buoni risultati grazie mille a tutti.
 
Ciao,
inanzitutto grazie cmq per quanto riguarda il problema mi spiego meglio allora ho un form: una select (nome cognome di un'operatore) e un lista di risultati checkbox nome cognome telefono operatore (di clienti). Quello che io vorrei fare è modificare l'operatore di tutti i clienti flaggati. grazie ancora
 
ciao
quindi se non ho capito male nel form tu hai una select con i nomi degli operatori e
delle righe che riportano i clienti (es.)
[table="width: 500"]
[tr]
[td]cliente[/td]
[td]tel.[/td]
[td]operatore[/td]
[td][/td]
[/tr]
[tr]
[td]aaaaa[/td]
[td]0487888989[/td]
[td]pinco[/td]
[td]□[/td]
[/tr]
[tr]
[td]bbbbb[/td]
[td]058978[/td]
[td]pinco[/td]
[td]□[/td]
[/tr]
[tr]
[td]ccc[/td]
[td]02568933[/td]
[td]pallino[/td]
[td]□[/td]
[/tr]
[tr]
[td]ecc….[/td]
[td][/td]
[td][/td]
[td]□[/td]
[/tr]
[/table]
tu selezioni il nome dell’operatore (es pancrazio) nel menù a tendina e uno o più checkbox relativo al/ai cliente/i (es. aaaaa e bbbbb) quindi vorresti che risultasse
[table="width: 400"]
[tr]
[td]cliente[/td]
[td]tel.[/td]
[td]operatore[/td]
[td][/td]
[/tr]
[tr]
[td]aaaaa[/td]
[td]0487888989[/td]
[td]pancrazio[/td]
[/tr]
[tr]
[td]bbbbb[/td]
[td]058978[/td]
[td]pancrazio[/td]
[/tr]
[tr]
[td]ccc[/td]
[td]02568933[/td]
[td]pallino[/td]
[/tr]
[tr]
[td]ecc….[/td]
[td][/td]
[td][/td]
[/tr]
[/table]

è così?
cosa trasmetti selezianando le checkbox? l’id del cliente?
 
Fai in modo che il form creato quando l'operatore seleziona le voci da modificare sia simile a questo:
HTML:
<form method="post" action="edit.php">
    <fieldset>
        <legend>Voce 1</legend>

        <p>
            <label>Nome:</label>
            <input type="text" name="1[name]" />
        </p>

        <p>
            <label>Cognome:</label>
            <input type="text" name="1[surname]" />
        </p>
    </fieldset>

    <fieldset>
        <legend>Voce 2</legend>

        <p>
            <label>Nome:</label>
            <input type="text" name="2[name]" />
        </p>

        <p>
            <label>Cognome:</label>
            <input type="text" name="2[surname]" />
        </p>
    </fieldset>

    <input type="submit" value="Invia" />
</form>
Ovviamente, al posto di 1 e 2 vanno gli ID univoci delle voci, e tra le parentesi quadre i reali nomi dei campi (gli stessi che mostri quando inserisci una nuova voce, insomma).

Se nella pagina di destinazione fai un print_r di $_POST ottieni:
Codice:
Array
(
    [1] => Array
        (
            [name] => Pinco
            [surname] => Pallino
        )

    [2] => Array
        (
            [name] => Mario
            [surname] => Rossi
        )

)
Immagino che da qui sia piuttosto chiaro come procedere.
 
ciao
immagino che tu abbia nel form qualcosa del genere

PHP:
<?php
//.......la select per gli operatori
while ($riga_o=mysql_fetch_array($query_op)){
	echo "<option value='".$riga_o['id_op']."'>".$riga_o['nome_op']."</option>";
}
//....
//..elenco dei clienti
while($riga_cl=mysql_fetch_array($query_cl)){
	echo $riga_cl."........"."<input name='cliente[]' type='checkbox' value='".$riga_cl['id_clente']."'>";
}
/* importante dare il nome al chek tipo pinco[] cioè dire che è un array */
//....
?>
poi, o nella stessa paginina o altra io farei così
PHP:
<?php
//......
$nuovo_operatore=$_POST['nuovo_op'];//non so se passi l'id dell'operatore o il suo nome, ma è lo stesso, cambi i nomi delle variabili
if(is_array($_POST['cliente'])){//verifichi di aver ceccato almeno un cliente
	foreach($_POST['cliente'] as $valore){
		$query_uppa="UPDATE tabella_clienti SET operatore='$nuovo_operatore' WHERE id_clente=$valore";
		mysql_query($query_uppa);
	}
}
//.........
?>
prova al massimo non funzia
 
:crying: Non va posto il codice forse sbaglio qualcosa

Codice:
<form action=\"index.php\" method=\"POST\"/>
   <select name=\"associ\">
      <option value=\"\">- - Scegli l'operatore - - </option>";
         $query = "SELECT * FROM operatori ORDER BY id DESC"
     .......
    </select>
    <td>
       <input name='cliente[]' type='checkbox' value='".$id['id']."'>
    </td>
    <td width=\"198\">
       <b>$nome</b>
    </td>
    .......			
    $associ=$_POST['associ'];//non so se passi l'id dell'operatore o il suo nome, ma è lo stesso, cambi i nomi delle variabili
    if(is_array($_POST['cliente'])){//verifichi di aver ceccato almeno un cliente 
       foreach($_POST['cliente'] as $valore){ 
        $query_uppa="UPDATE anagrafiche SET associ='$associ' WHERE id=$valore";
         mysql_query($query_uppa); 
    } 
} echo"
<input type=\"submit\" value=\"Associa\">
</form>

il problema credo sia che non passa l'id ma dei numeri con caratteri speciali tipo:

Codice:
index.php?associ=Paolo+Inserimenti&cliente%5B%5D=2&cliente%5B%5D=1

piuttosto che:

Codice:
index.php?associ=Paolo+Inserimenti&cliente=100

grazie per l'aiuto
 
ciao
secondo me hai fatto un po' di caos.
cosa c'entrano
index.php?associ=Paolo+Inserimenti&%5B%5D=2&%5B%5D=1
cioè la trasmissione con GET?
poi perche hai messo la query di uppaggio dentro il form?
tra l'altro, salvo che non sia errore di copia/incolla, ti sei dimenticato un paio di mysql_query.

PHP:
<?php
// qui i dati di connessione al db
if(isset($_POST['invia']){//è sempre meglio dare un name al pulsante di submit
	if($_POST['associ'] !=""){//ha selezionato un operatore
		if(is_array($_POST['cliente'])){//almeno un cliente è stato checcato
			$associ=$_POST['associ'];
			foreach($_POST['cliente'] as $valore){
				$q_up="UPDATE anagrafiche SET associ='$associ' WHERE id=$valore";
				mysql_query($q_up);
			}
		}else{
			echo "devi indicare almeno un cliente";
		}
	}else{
		echo "non hai indicato l'operatore";
	}
	//qui il ritorno al form
}
//....qui il form predisposto per pagina unica
//se fai in due pagine, ma mi sembra inutile, al posto di
//".htmlspecialchars($_SERVER['PHP_SELF']." devi mettere il nome della pagina a cui punta il form
//e dove c'è la querry di uppaggio
echo "<form action=\"".htmlspecialchars($_SERVER['PHP_SELF']."\" method=\"POST\"/>";
	echo "<select name=\"associ\">";
	echo "<option value=\"\">- - Scegli l'operatore - - </option>";
	$q="SELECT * FROM operatori ORDER BY id DESC";
	$ris=mysql_query($q);
	while($riga_op=mysql_fetch_array($ris)){
		echo "<option value=\"".$riga_op['id']."\">".$riga_op['nome_operatore']."</option>";
	}
	echo "</select>";
	$q="SELECT * FROM anagrafiche ORDER BY nome_cliente";
	$ris=mysql_query($q);
	while($riga_cl=mysql_fetch_array($ris)){
		//al posto dei ... ci sarà il cognome, num tel, nome operatore
		echo $riga_cl['nome']."...<input name='cliente[]' type='checkbox' value='".$id['id']."'>";
	}
	//al submit conviene sempre dare un name
	echo "<input type=\"submit\" value=\"Associa\" name=\"invia\">";
echo "</form>";
?>
p.s.
verifica i nomi delle variabili $riga['xxxx'] devono corrispondere al nome del campo che hai nelle tabelle
 

Discussioni simili