Preluare ID in Php in script Multiple Drop Down List
Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.
-
Senior70
- Mesaje:23
Preluare ID in Php in script Multiple Drop Down List
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
$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 !";
}
}
MarPlo
Mesaje:4343
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>.
andras
Mesaje:430
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.
MarPlo
Mesaje:4343
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];
//...
andras
Mesaje:430
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!
Senior70
Mesaje:23
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.