Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Citirea automata a campului la selectarea altuia din meniu
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
tristan_1982



Data înscrierii: 15/Oct/2007
Mesaje: 7

Trimis: Vin Sep 12, 2008 2:26 pm    Titlul subiectului: Citirea automata a campului la selectarea altuia din meniu  

Am urmatorul cod :
<?php
echo '<div align="left"><select name="type">';
$query = 'SELECT s_id, tip_str, nume_str, sector_str FROM strazi ORDER BY nume_str ASC';
$result = mysql_query ($query);
while ($row = mysql_fetch_array ($result, MYSQL_NUM)) {
echo "<option value=\"$row[0]\">$row[2] ($row[1])</option>";
}
echo "<p align=\"center\"><input type=\"text\" size=\"100\" value=\"$row[3] \"</p>";
echo '</div>';
?>

Cand incarc pagina in localhost nu imi citeste $row[3], adica sectorul de unde face parte strada.
Please Help !!!!!
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1801
Locație: Sibiu

Trimis: Vin Sep 12, 2008 2:34 pm    Titlul subiectului:  

E logic. Script-ul tau se comporta exact asa cum ar trebui. mysql_fetch_array() iti returneaza un rand din rezultatul query-ului si incrementeaza pointerul, atata timp cat pointerul nu a ajuns la finalul rezultatelor, iar apoi returneaza booleanul false.

Tu apelezi $row[3] doar dupa ce s-a iesit din bucla while, adica in momentul in care $row nu mai e un array, e egal cu false.

Asigneaza valoarea $row[3] intr-o variabila in interiorul buclei, si dupa bucla afiseaza acea variabila.
Sus  
tristan_1982



Data înscrierii: 15/Oct/2007
Mesaje: 7

Trimis: Dum Sep 14, 2008 3:21 pm    Titlul subiectului:  

Am incercat si asa :
<?php
echo '<div align="left"><select name="type"><option value="null">Cauta strada</option>';
$query = 'SELECT s_id, tip_str, nume_str, sector_str FROM strazi ORDER BY nume_str ASC';
$result = mysql_query ($query);
while ($row = mysql_fetch_array ($result, MYSQL_NUM)) {
echo "<option value=\"$row[0]\">$row[2] ($row[1])</option>";
$t = $row[3];
}
echo "<p align=\"center\"><input type=\"text\" size=\"100\" value=\"$t\"</p>";
echo '</select></div>';
?>
Dar imi afiseaza doar ultima inregistrare din tabel. Sa inteleg ca bucla while le citeste pe toate si cand ii atribui lui $t randul din tabel corespunzator lui $row[0] pe care l-am selectat ea imi citeste intotdeauna ultima mea inregistrare. Ce sa mai fac? Nu stiu. Va implor o idee ca peretele de langa mine a facut o gaura de cand ma tot dau cu capul de el.
Sus  
tristan_1982



Data înscrierii: 15/Oct/2007
Mesaje: 7

Trimis: Mar Sep 16, 2008 12:20 pm    Titlul subiectului:  

Please help. Macar spuneti-mi ca nu se poate
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1801
Locație: Sibiu

Trimis: Mar Sep 16, 2008 12:57 pm    Titlul subiectului:  

Explica mai clar ce vrei sa faci si poate reusim sa te ajutam.
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE

Trimis: Mar Sep 16, 2008 1:16 pm    Titlul subiectului:  

de ce nu pui frate $row['nume_str']?.. ti-e lene? :?

edit // pune $result = mysql_query ($query) or die(mysql_error());
si, asigura-te ca exista CEVA in campul ala
Sus  
tristan_1982



Data înscrierii: 15/Oct/2007
Mesaje: 7

Trimis: Mar Sep 16, 2008 2:54 pm    Titlul subiectului:  

Am un tabel numit "strazi" cu urmatoarele coloane : s_id, nume_str si sector_str. In scriptul php cand selectez nume_str sa imi afiseze automat intr-un camp separat sector_str. Asa arata o parte din script :
<br><p style="font-size:14px "><b>Adresa persoanei / institutiei care sesizeaza : </b><select name="strada">
<?php
$result = mysql_query ("SELECT nume_str FROM strazi ORDER BY nume_str");
$num = mysql_num_rows ($result);
while ($i <= $num) {
$i = $i + 1;
$row = mysql_fetch_array ($result);
echo '<option value="' . '$row[nume_str]' . '">' . $row['nume_str'] . '</option>';
$t = $row['nume_str'];
}

?>
</select></p>
<br><p style="font-size:14px "><b>Adresa persoanei / institutiei care sesizeaza : </b><select name="sector">
<?php
$result = mysql_query ("SELECT sector_str, nume_str FROM strazi WHERE nume_str = '$t'");
while ($row = mysql_fetch_array ($result)) {
echo '<option value="' . '$row[sector_str]' . '">' . $row['sector_str'] . '</option>';
}
?></select></p>
Poate ca m-am facut un pic mai clar acum. Problema este ca atunci cand vreau sa imi afiseze sectorul imi afiseza doar ultima inregistrare din tabel.
Sus  
whooper



Data înscrierii: 05/Apr/2005
Mesaje: 727
Locație: Toronto ON

Trimis: Mar Sep 16, 2008 10:47 pm    Titlul subiectului:  

pai iar e normal ce se intampla. Tu cu primul query generezi toate strazile. in $t, tii minte strada curenta in primul ciclu while. Cand se termina ciclul, ai acolo numele ultimei strazi.

Apoi incepi generarea celei de-a doua liste cu sectoare, cu conditia ca numele strazii din variabila $t (ultima strada) sa se afle in sectorul care vrei sa fie adaugat la lista. Cum cred ca le-ai adaugat in o ordine prestabilita, va afisa intotdeauna sectorul ultimei strazi, adica ultimul sector.

Listele astea combinate se fac altfel. faci un tabel cu 3 campuri, toate bigint : id, sector, strada. Faci alt tabel cu 2 campuri id_strada si nume_strada, si faci al treilea tabel 2 campuri cu id_sector si nume_sector. Fixezi indecsi pe campurile ID in cele 3 tabele si abia dupa aia te gandesti cum arata query-ul.

Inca o chestie. Poti tine minte toate strazile si toate sectoarele in variabile JS si afisarea o faci cu JS. La event-ul ONBLUR in primul select, faci o functie care filtreaza singura sectorul functie de strada in cel de-al doilea ..

Daca vrei sa folosesti PHP, poti face aproximativ acelasi lucru daca folosesti AJAX (iar JS, iar event-ul ONBLUR), sau la selectarea unei valori in primul SELECT reincarci pagina ruland query-ul al doilea.

M-am facut inteles .. ??
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community