2013-08-12 1 views
3

я пытаюсь создать «выберите в раскрывающемся меню», который содержит мульти значения в каждом параметре .. что-то вроде этого:Как создать отборное с несколькими значением

<select id="select" name="zone"> 
<option value="val1" value="val2" value="val3">zone1</option> 
<option value="v1" value="v2" value="v3">zone2</option> 
<option value="valu1" value="valu2" value="valu3">zone3</option> 
</select> 

скажите, пожалуйста, как поступить и спасибо

+0

Может быть, [это] (Http: // stackoverflow.com/questions/3245967/can-an-option-in-select-tag-carry-multiple-values). – geekchic

+0

каждый опция есть одиночное значение. если u хочет иметь несколько значений, вы можете либо дать значения, разделенные запятыми, и на submit просто разбить их запятой. – swan

+0

вы не можете установить один и тот же атрибут более одного раза. поэтому здесь атрибут value больше одного раза в вашем теге опциона, что неверно. –

ответ

1

Вы могли бы сделать это

<select id="select" name="zone"> 
<option value="val1,val2,val3">zone1</option> 
<option value="v1,v2,v3">zone2</option> 
<option value="valu1,valu2,valu3">zone3</option> 
</select> 

и использовать раскол в сценарии на стороне клиента или аналогичный на сервере

+0

, спасибо, что это так полезно –

1

Его легко можно использовать простой трюк, так как вы можете объединить все значение с помощью разделителя, такого как : в атрибуте value.

и когда вы получите значение в php, просто взорвите его, и вы получите все значения по мере необходимости.

<select id="select" name="zone"> 
<option value="val1:val2:val3">zone1</option> 
<option value="v1:v2:v3">zone2</option> 
<option value="valu1:valu2:valu3">zone3</option> 
</select> 

Теперь в PHP вам просто нужно сделать:

<?php 

$value = $post['zone']; // assuming form method is post 
$values = explode(':',$value); 
$value_1 = $values[0]; 
$value_2 = $values[1]; 
$value_3 = $values[2]; 
?> 

Надеется, что это было полезно :)

+0

спасибо Рахул :) Скажите, пожалуйста, это то же самое, если я использую переменные php? –

+0

да, вы также можете использовать переменную php. Если мой ответ правильный и полезный atleas, то я заслуживаю upvote .. :) – Rahul

0

так, если я понимаю, что вы все сказали мне, что я могу это сделать?

<form> 
    <select class="target"> 
      <?php // loading rectangles from database 
        $dbname   ='zone'; //Name of the database 
        $dbuser   ='root'; //Username for the db 
        $dbpass   =''; //Password for the db 
        $dbserver   ='localhost'; //Name of the mysql server 

        $dbcnx = mysql_connect ("$dbserver", "$dbuser", "$dbpass"); 
        mysql_select_db($dbname) or die(mysql_error()); 

        $query = mysql_query("SELECT * FROM ville"); 
        while ($row = mysql_fetch_array($query)) 
        { 
         $name=$row['NOM_VILLE']; 
         $lat1=$row['LATITUDE1_V']; 
         $lon1=$row['LONGITUDE1_V']; 
         $lat2=$row['LATITUDE2_V']; 
         $lon2=$row['LONGITUDE2_V']; 

        echo "<option value=".$lat1.",".$lon1.",".$lat2.",".$lon2.">".$name."</option>";  
         } 
       ?> 
       </select> 
</form> 
3

Вы не можете добавить много значений в параметр. вместо этого вы можете использовать наборы данных (html5), как:

<select id="myselect"> 
<option data-this="foo" data-that="bar"> 
</select> 

Код JavaScript для чтения этих значений:

var d = document.getElementById("myselect"); 
var _this = d.options[d.selectedIndex].dataset["this"]; 
var _that = d.options[d.selectedIndex].dataset["that"]; 

если вы не хотите возиться с наборами данных, вы можете хранить объект JSON:

... 
<option value='<?php echo json_encode(array("foo"=>1,"bar"=>2)); ?>'> 
... 

и извлекать данные, как:

var d = document.getElementById("myselect"); 
var option_value = JSON.parse(d.options[d.selectedIndex].value); 

Источник: embedding multiple values in options of <select>

0

я узнал, как сделать это .... и это мой последний код .. спасибо :) всем ..

<!DOCTYPE html> 
<html> 
<?php 
include_once("config.php"); 
?> 
<head> 
<title>Simple Map</title> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<meta charset="utf-8"> 
<style> 
html, body, #map-canvas { 
    margin: 0; 
    padding: 0; 
    width: 500px; 
    height: 500px; 
left; 
} 
</style> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script> 
var map; 
//var bounds; 
function addRectangle(lat1, lon1, lat2, lon2) 
{ 
          var Bounds = new google.maps.LatLngBounds(
           new google.maps.LatLng(lat1, lon1), 
           new google.maps.LatLng(lat2, lon2) 
         ); 
          var rectangle = new google.maps.Rectangle({ 
          bounds: Bounds, 
          //draggable: true, 
          //editable: true, 
          map : map, 
         }); 
         //rectangle.setMap(map); 
} 

function initialize() { 
    var mapOptions = { 
    zoom: 8, 
    center: new google.maps.LatLng(44.490, -78.649), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions); 

     <?php // loading rectangles from database 
        $dbname   ='zone'; //Name of the database 
        $dbuser   ='root'; //Username for the db 
        $dbpass   =''; //Password for the db 
        $dbserver   ='localhost'; //Name of the mysql server 

        $dbcnx = mysql_connect ("$dbserver", "$dbuser", "$dbpass"); 
        mysql_select_db($dbname) or die(mysql_error()); 

        $query = mysql_query("SELECT * FROM ville"); 
        while ($row = mysql_fetch_array($query)) 
        { 
         $name=$row['NOM_VILLE']; 
         $lat1=$row['LATITUDE1_V']; 
         $lon1=$row['LONGITUDE1_V']; 
         $lat2=$row['LATITUDE2_V']; 
         $lon2=$row['LONGITUDE2_V']; 
         echo "addRectangle($lat1, $lon1, $lat2, $lon2);"; 
        } 
       ?> 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
</head> 
<body> 
<div id="map-canvas"></div> 
<?php // loading makers from database 
        $dbname   ='zone'; //Name of the database 
        $dbuser   ='root'; //Username for the db 
        $dbpass   =''; //Password for the db 
        $dbserver   ='localhost'; //Name of the mysql server 

        $dbcnx = mysql_connect ("$dbserver", "$dbuser", "$dbpass"); 
        mysql_select_db($dbname) or die(mysql_error()); 

        $query = mysql_query("SELECT * FROM ville"); 
        while ($row = mysql_fetch_array($query)) 
        { 
         $name=$row['NOM_VILLE']; 
         $lat1=$row['LATITUDE1_V']; 
         $lon1=$row['LONGITUDE1_V']; 
         $lat2=$row['LATITUDE2_V']; 
         $lon2=$row['LONGITUDE2_V']; 

         //$desc=$row['zone']; 
         echo " ".$lat1.", ".$lon1.",".$lat2.", ".$lon2.""; 
         //echo "addMarker($lat, $lon,'<b>$name</b><br/>$desc');"; 
        } 
       ?> 
</body> 
</html> 
Смежные вопросы