Pagina 1 din 1

Preluare ID in Php in script Multiple Drop Down List

Scris: Mar Dec 20, 2016
de Senior70
Sal ! ...scuze ca revin la subiect referitor la scriptul: https://marplo.net/ajax/multiple-sel ... -ajax.html
- dar nu am reusit dupa multe stradanii sa rezolv problema ...
Nu stiu cum pot extrage indecsii elementelor ce-mi apar in fiecare coloana selectata cu codul Multiple Select Drop Down List ...
Am reusit sa preiau elementele din coloane, dar ma intereseaza sa pot prelua si id -ul fiecarui element selectat ...

Cod: Selectaţi tot

if(isset($_POST) && count($_POST) >0){
//preia valorile selectate, dupa numele coloanelor stiute
  $val_col1 = $_POST['domeniul']; 
  $val_col2 = $_POST['sectiunea'];
  $val_col3 = $_POST['optiunea']; 
......
dar am nevoie sa folosesc si id-ul fiecarui element selectat...

Cod: Selectaţi tot

$id_col1 ...
$id_col2...
$id_col3 ...
.......

Cod: Selectaţi tot

$sql1 = "insert into clienti values (null, '$id_col1', '$val_col1', '$id_col2', '$val_col2', '$id_col3','$val_col3', ......)";
	if (mysqli_query($conn, $sql1)or die(mysql_error())){
	echo "Inregistrare facuta";
	} else{		
		echo "ceva nu merge !";
		}
}

Preluare ID in Php in script Multiple Drop Down List

Scris: Mar Dec 20, 2016
de MarPlo
Salut
In acel script elementul <select> nu are ID adaugat, ci doar atribut "name" cu numele coloanei.

Cod: Selectaţi tot

$re_html = $col. ': <select name="'. $col. '"'. $onchg. '><option>- - -</option>';
Nu stiu la ce id te referi, cum sau de unde este adaugat la elementul <select>.

Preluare ID in Php in script Multiple Drop Down List

Scris: Mie Dec 21, 2016
de andras
Mai demult faceam tot felul de artificii sa pot prelua mai multe date in POST. Spre exemplu (pseudocod):

Cod: Selectaţi tot

<select name="domeniu"><option value ="'xyz'+'_?_'+''3">xyz</option></select>
- deci value era o expresie compusa trimisa prin POST cu xyz valoarea efectiva si 3 care era ID, index sau orice altceva ce vrei sa trimiti prin POST. In fsierul apelat cu ajax spargeam sirul

Cod: Selectaţi tot

$arrayDomeniu = explode("_?_", $_POST['domeniu']);
si obtineam cele 2 valori.
Probabil ca acum as cauta o metoda mai eleganta de rezolvare, dar la vremea respectiva aceste artificii au functionat foarte bine. Poate iti va fi de folos aceasta solutie.

Preluare ID in Php in script Multiple Drop Down List

Scris: Joi Dec 22, 2016
de MarPlo
Daca te referi la id-ul din tabelul mysql de la randurile care apar la <option> in listele <select>, poti face asa:
In fisierul "select_list.php" fa aceste trei modificari:
1. Inlocuieste randul de cod:

Cod: Selectaţi tot

$sql = "SELECT DISTINCT `$col` FROM `$table`".$where;
- Cu acesta:

Cod: Selectaţi tot

$sql = "SELECT DISTINCT `$col`, id FROM `$table`".$where ." GROUP BY `$col`";
2. Codul:

Cod: Selectaţi tot

$onchg = $next_col!==null ? " onchange=\"ajaxReq('$next_col', this.value);\"" : '';
- Cu acesta:

Cod: Selectaţi tot

$onchg = $next_col!==null ?" onchange=\"ajaxReq('$next_col', this.value.split('^?')[0]);\"" :'';
3. Si randul:

Cod: Selectaţi tot

else $re_html .= '<option value="'. $row[$col]. '">'. $row[$col]. '</option>';
- Cu acesta:

Cod: Selectaţi tot

else $re_html .= '<option value="'. $row[$col]. '^?'. $row['id'] .'">'. $row[$col]. '</option>';
In scriptul unde preiei valorile din <select>, pentru fiecare Select va fi trimisa o valoare de forma: "val_col^?ID". Din aceasta poti separa valorile cu explode():

Cod: Selectaţi tot

$val_col = explode('^?', $_POST['domeniul']);
$val_col1 = $val_col[0];
$id_col1 = $val_col[1];

$val_col = explode('^?', $_POST['sectiunea']);
$val_col2 = $val_col[0];
$id_col2 = $val_col[1];
//...

Preluare ID in Php in script Multiple Drop Down List

Scris: Joi Dec 22, 2016
de andras
MarPlo, cam la asta m-am gindit si eu, doar ca eu nu am timpul si nici rabdarea sa explic atit de detailat. Pe tine te apreciaza toti tocmai pentru rabdarea de a explica fiecaruia pe intelesul lui.
Sarbatori fericite!

Preluare ID in Php in script Multiple Drop Down List

Scris: Lun Ian 09, 2017
de Senior70
OK, cu toate ca este tardiv,( abia acum am intrat in "probleme " ), va multumesc MarPlo si andras, ca v-ati aplecat asupra problemei mele, dar tre sa spun ca nu merge ... am facut exact modificarile, dar la rulare nu-mi citeste mai mult decat prima coloana (domenii), apoi, sta ...
Oricum, eu am renuntat la asta si am mers pe alte cai.