συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
aristidis_85
Δημοσιεύσεις: 58
Εγγραφή: 18 Μαρ 2009 19:14

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από aristidis_85 » 17 Απρ 2009 20:53

παιδια, ειχα ξανακανει παρομοιο thread παλιοτερα, αλλα ισως δεν ηταν στο σημειο που επρεπε. και οχι τοσο λεπτομερες. εξηγουμαι λοιπον..
στο παρακατω μενου:
http://ii-ptixiakes.teikav.edu.gr/metax ... /agora.php
το οποιο ειναι κομματι τις ιστοσελιδας:
http://ii-ptixiakes.teikav.edu.gr/metax ... index.html
θελω να συνεργαζονται τα 2 drop down menu[νομος - δημος], στην περιπτωση μου, επειδη προκειται για πτυχιακη και αναλυεται μονο ο νομος καβαλας , χρειαζεται μονο οταν επιλεχθει ο νομος καβαλα να ενεργοποιηται το drop down με τους δημους.
τωρα που το σκεφτομαι, ισως να υπαρχει κανενας "παπατζηδικος" τροπος, απλα να ενεργοποιειται το μενου με τους δημους, οταν επιλεχθει ο νομος καβαλας. (αυτο που θελω δηλαδη ειναι λιγο πιο ευκολο απο τα συστηματα που εχει πχ ο χρυσος οδηγπς και για καθε νομο βγαζει και ενα μενου με δημους)


θα μου πειτε, πλακα μας κανεις, υπαρχουν απειρα tutorials με 2 και 3 συνεργαζομενα μενου σε javascript - ναι, τα εχω βρει, αλλα δεν μπορεσα να ταιριαξω καποιο στην περιπτωση μου γιατι:

1)ειτε θα ειναι hard coded οι πολεις και οι νομοι στην HTML και δεν θα τραβιουνται απο την βαση
2)ειτε θα ειναι hard coded οι πολεις και οι νομοι στην javascript και θα τους εχει σε array.
3)ειτε θα τραβιουνται απο βαση οι πολεις και οι νομοι με javascript αλλα ΟΧΙ με mysql.

ετσι δειχνω τους νομους:

Κώδικας: Επιλογή όλων

<select name="jump_nomos" id="jump_nomos" onchange="submit">
          <!-- nomos -->
          <option value='1' selected="selected">Όλοι </option>
          <?php
		    
		    $query3 = "SELECT distinct nomos FROM meros ;"; //drop down nomos
			$result3 = mysql_query &#40; $query3, $conn &#41;;
			
            if &#40; mysql_numrows&#40;$result3&#41; &#41;// ean exei epistrafei apotelesma ektelese thn while
			&#123;
			while &#40; $row = mysql_fetch_array &#40; $result3 &#41; &#41;//enw uparxoun apotelesmata, ektelese ta parakatw&#58;
				&#123;
				echo "<option value='" . $row&#91;'nomos'&#93; . "'>" . $row&#91;'nomos'&#93; . "</option>" . "\n";
				    
			    &#125;	
            &#125;             
			?>
        </select>
και ετσι δειχνω τους δημους:

Κώδικας: Επιλογή όλων

<select  name="jump_dhmos" id="jump_dhmos">
          <option value="IS NULL" selected="selected"></option>
          <?php		    
		    $query4 = "SELECT distinct dhmos 
			           FROM meros 
					   where dhmos IS NOT NULL
					   			 
			          ;"; //drop down dhmos
			$result4 = mysql_query &#40; $query4, $conn &#41;;
			
            if &#40; mysql_numrows&#40;$result4&#41; &#41;// ean exei epistrafei apotelesma ektelese thn while
			&#123;
			while &#40; $row = mysql_fetch_array &#40; $result4 &#41; &#41;//enw uparxoun apotelesmata, ektelese ta parakatw&#58;
				&#123;
				echo "<option value=='" . $row&#91;'dhmos'&#93; . "'>" . $row&#91;'dhmos'&#93; . "</option>" . "\n";
				    
			    &#125;	
            &#125;             
			?>
        </select>
οποιος μπορει να βοηθησει θα του ημουν υποχρεος.
ευχαριστω!
Υ.Γ
παρακατω δινω και ενα screenshot με παραδειγμα απο την βαση:
Συνημμένα
sql.JPG

jimanis86
Δημοσιεύσεις: 52
Εγγραφή: 14 Ιουν 2007 01:29
Επικοινωνία:

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από jimanis86 » 21 Απρ 2009 14:34

Για να μπορέσεις να κάνεις τις δύο λίστες να συνεργάζονται και ταυτόχρονα να τραβάνε τα δεδομένα από τη βάση θα πρέπει να χρησιμοποιήσεις ajax. Αυτό θα πρέπει να το κάνεις γιατί είναι ο μόνος τρόπος να πάρεις δεδομένα από τη βάση χωρίς να ανανεώσεις τη σελίδα. Αυτό που θέλεις στην ουσία είναι όταν κάποιος επιλέξει ένα νομό τότε να στέλνεται στη βάση ένα αίτημα που να ζητάει τους δήμους του συγκεκριμένου νομού.

Αν το ψάξεις λίγο με ajax λύνεται σχετικά εύκολα.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από dva_dev » 21 Απρ 2009 15:39

Αν έχω καταλάβει καλά αυτό που λες το έχει βρεί ήδη (το αναφέρει στο 3)), αλλά δεν χρησιμοποιεί mysql database. Μάλλον χρησιμοποιεί κάποια άλλη.
Αυτό που θέλει είναι το 3) αλλα σε mysql.

jimanis86
Δημοσιεύσεις: 52
Εγγραφή: 14 Ιουν 2007 01:29
Επικοινωνία:

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από jimanis86 » 21 Απρ 2009 18:03

Αυτό που αναφέρει ο φίλος στο 3 είναι ότι από τη βάση τραβιούνται μόνο οι νομοί ενώ οι δήμοι όχι.

Μπορεί να δημιουργήσει μία php σελίδα η οποία να περιέχει ένα αίτημα προς τη βάση που να ζητάει τους δήμους με βάση το νομό που διάλεξε. Για να το κάνει αυτό όμως χωρίς να ανανεώσει τη σελίδα θα πρέπει να καλέσει την php σελίδα με τη χρήση ajax.

Θα κάνεις τα παρακάτω:

Κώδικας: Επιλογή όλων

<script type="text/javascript">

var xmlHttp

function showContent&#40;&#41;
&#123; 

xmlHttp=GetXmlHttpObject&#40;&#41;;
if &#40;xmlHttp==null&#41;
  &#123;
  alert &#40;"Your browser does not support AJAX!"&#41;;
  return;
  &#125; 

url='http&#58;//www.hselidasou.gr'+"nomoi="+document.getElementById&#40;'nomoi'&#41;.value;

xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open&#40;"GET",url,true&#41;;
xmlHttp.send&#40;null&#41;;

&#125;


function stateChanged&#40;&#41; 
&#123; 

if &#40;xmlHttp.readyState==4&#41;
&#123; 
document.getElementById&#40;'showdiv'&#41;.innerHTML=xmlHttp.responseText;
&#125;


&#125;

function GetXmlHttpObject&#40;&#41;
&#123;
var xmlHttp=null;
try
  &#123;
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest&#40;&#41;;
  &#125;
catch &#40;e&#41;
  &#123;
  // Internet Explorer
  try
    &#123;
    xmlHttp=new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
    &#125;
  catch &#40;e&#41;
    &#123;
    xmlHttp=new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
    &#125;
  &#125;
return xmlHttp;
&#125;

</script>
Τον παραπάνω κώδικα θα το βάλεις πριν το body της σελίδας σου.

Έπειτα θα βάλεις στη φόρμα σου κάτι σαν αυτό.

Κώδικας: Επιλογή όλων

<select name="oinomoi" id="nomoi" onchange="showContent&#40;&#41;;">
<option value="0" selected="selected">Σέρρες</option>
<option value="1">Καβάλα</option>
</select>

<div id="showdiv"></div>
στο παραπάνω div θα φορτωθεί, όταν κάποιος επιλέξει ένα νομό, το αρχείο php που σου λέω πιο πάνω. Εκεί με ένα GET μπορείς να πάρεις το value του νομού και αυτό ήταν.[/list]

aristidis_85
Δημοσιεύσεις: 58
Εγγραφή: 18 Μαρ 2009 19:14

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από aristidis_85 » 21 Απρ 2009 19:38

φιλε σε ευχαριστω παρα πολυ, ομως με ενδιαφερει στο

Κώδικας: Επιλογή όλων

<option value="1">Καβάλα</option> 
να μην εχει νουμερο, αλλα εχει το ονομα του νομου :

Κώδικας: Επιλογή όλων

<option value="Καβάλα">Καβάλα</option> 
γιατι ετσι παιρνω αυτουσια την λεξη καβαλα και την χρησημοποιω στην αναζητηση mysql πχ

Κώδικας: Επιλογή όλων

select * from cars where meros_id = &#40;select id from meros where nomos='$_POST&#91;dropDown&#93;'&#41;
ετσι ειναι στημενη η βαση..
ευχαριστω.

jimanis86
Δημοσιεύσεις: 52
Εγγραφή: 14 Ιουν 2007 01:29
Επικοινωνία:

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από jimanis86 » 22 Απρ 2009 12:47

Αυτό δεν αλλάζει κάτι. Μπορείς να στείλεις ότι θέλεις βάζοντας στο value αυτό που θέλεις και έπειτα να το περάσεις όπως κάνεις στο αίτημα σου για τη βάση.

Στο σημείο που γράφω στον κώδικα

Κώδικας: Επιλογή όλων

url='http&#58;//www.hselidasou.gr'+"nomoi="+document.getElementById&#40;'nomoi'&#41;.value; 
Παίρνει το value από τη λίστα σου. Αν θεέλςι να βάλεις το όνομα βάζεις το όνομα.

Μετά όμως στη σελίδα php που θα δημιουργήσεις θα πρέπει να γράψεις το εξής:

Κώδικας: Επιλογή όλων

select * from cars where meros_id = &#40;select id from meros where nomos='$_GET&#91;nomoi&#93;'&#41;

aristidis_85
Δημοσιεύσεις: 58
Εγγραφή: 18 Μαρ 2009 19:14

συνεργασια 2 drop down menu, αλλα να τραβανε data απο βαση

Δημοσίευση από aristidis_85 » 23 Απρ 2009 12:00

ευχαριστω πολυ, τωρα βαζω τις τελευταιες πινελιες και μολις τελειωσω απο ολα, θα ασχοληθω αποκλειστικα με αυτο και θα επανελθω με ολοκληρα κομματια κωδικα.
Εικόνα

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες