panosu1 Δημοσ. 11 Οκτωβρίου 2016 Δημοσ. 11 Οκτωβρίου 2016 γεια σας! Έχω κάνει κάποια functions όπου μου φέρνουν δεδομένα από τον geoserver. έχω κάνει ένα form που γεμίζει δυναμικά ανάλογα με τα δεδομένα. Θέλω λοιπόν όταν ο χρήστης επιλέγει κάποια επιλογή από το dropdown να κάνω ένα action. Εν μέρη δουλεύει αλλά όχι 100% σωστά. Δηλαδή στο τελικό script κάνει μόνο την else επιλογή. υπόψην από js δεν ξέρω καθόλου. τι λάθος κάνω? <?php session_start(); if(!isset($_SESSION["sess_user"])) { $_SESSION['show_login_required'] = true; header("Location: home.php?success=1", true, 302); die; } ?> <html lang="el"> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <title>Φόρμα Επιλογής</title> <link rel="stylesheet" type="text/css" href="mystyle.css"> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head> <body> <div class="formdiv"> <h1 class="h1class">Μέσα από την παρακάτω φόρμα επιλογής, διαλέξετε τις προκαθορισμένες κατηγορίες ώστε να λάβετε τα κατάλληλα αποτελέσματα!</h1> <div class="formdiv2"> <?php function getStores($workspace) { require_once('credentials2.php'); $mystores = simplexml_load_file('http://admin:[email protected]<script data-cfhash='f9e31' type="text/javascript">/* */</script>:8080/geoserver/rest/workspaces/'.$workspace.'/datastores.xml'); echo "<ul>"; $storeList = array(); $i = 0; foreach ($mystores as $storeinfo): $name=$storeinfo->name; $storeList[$i] = $storeinfo->name; echo "<li><div>" . $name . "</div></li>"; $i = $i + 1; endforeach; echo "</ul>"; return $storeList; } $storesArray = array(); echo '<form action="#" method="post">'; echo '<select id="stores" name="stores">'; $storesArray = getStores('test'); echo "<option>Νομούς ή Δήμους</option>"; foreach ($storesArray as $store): echo '<option>'.$store.'</option>'; endforeach; echo "</select>"; echo ' <input type="submit" name="submit" value="Πατήστε εδώ" />'; echo '</form>'; foreach ($storesArray as $key=>$value): endforeach; function getLayers($workspaceName, $storeName) { $myLayers = simplexml_load_file('http://admin:[email protected]/* */:8080/geoserver/rest/workspaces/'.$workspaceName.'/datastores/'.$storeName.'/featuretypes.xml'); echo "<ul>"; $layerList = array(); $i = 0; foreach ($myLayers as $layerInfo): $name=$layerInfo->name; $layerList[$i] = $layerInfo->name; echo "<li><div>" . $name . "</div></li>"; $i = $i + 1; endforeach; echo "</ul>"; return $layerList; } echo '<form action="#" method="post" id="mySelect">'; if(isset($_POST['submit'])){ $storeName = $_POST['stores']; } $layerArray = array(); echo '<select id="layers">'; $layerArray =getLayers('test', $storeName); echo $layerArray; echo '<option>Select</option>'; foreach ($layerArray as $layer): echo '<option id="mySelect">'.$layer.'</option>'; endforeach; echo "</select>"; foreach ($layerArray as $key=>$value): endforeach; echo '</form>'; ?> <button onclick="myFunction()">Click me</button> <p>bgbg</p> <p id="demo"></p> <script> function myFunction() { var x = document.getElementById("mySelect").value; alert(x); if (x=='Nomoi') { document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.w3schools.com") } else if (x=='test1') { document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.google.com") } else { document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.bing.com") } } </script> </div> </div> </body> </html> πριν κάνω όλο αυτό είχα κάνει ένα πρότυπο και μου δούλευε σωστά. <!DOCTYPE html> <html> <body> <select id="mySelect"> <option value="Audi">Audi <option value="BMW">BMW <option value="Mercedes">Mercedes <option value="Volvo">Volvo </select> <button onclick="myFunction()">Click me</button> <p>DMFDSFDSFDS</p> <p id="demo"></p> <script> function myFunction() { var x = document.getElementById("mySelect").value; alert(x); if (x=='Audi') { document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.w3schools.com") } else if (x=='BMW') {document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.google.com")} else { document.getElementById("demo").innerHTML = "Page protocol is: " + window.location.assign("http://www.bing.com") } } </script> </body> </html> από ότι καταλαβαίνω δεν διαβάζει τις τιμές που έρχονται από την post. έτσι δεν είναι? EDIT τελικά ήθελε αλλαγή το id στο function. Τώρα παίζει σωστά νομίζω!το function είναι οκ? το redirect θα μπορούσε να γραφτεί και αλλιώς?
lion2486 Δημοσ. 12 Οκτωβρίου 2016 Δημοσ. 12 Οκτωβρίου 2016 κλείσε τα <option> tags με </option> στο τέλος.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα