Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας!

Έχω κάνει κάποια 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 θα μπορούσε να γραφτεί και αλλιώς?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...