如何在阵列中多次发布?

时间:2015-01-27 07:19:44

标签: php arrays ajax post

这是我的代码。这个multiselect如何使用数组来发布modelseardh.php

<p>
     <label>Country:</label>
     <select  multiple="multiple" name="country[]" class="qs_carlocation1                              carlocations" onChange="jsFunction()" id="selectOpt">
       <?php
            $sql_se = mysql_query('select * from `country`');
            while($se = mysql_fetch_assoc($sql_se)) {
           ?>
           <option value = "<?php echo $se['id'];?>"><?php echo $se['country'];</option>
          <?php
            }
           ?>                       
           </select>
        </p>    `         
          <p id="change_form">
             <label>Mark:</label>
              <select  multiple="multiple"name="search_mark[]"class="qs_carlocation1 carlocations" >
            <?php
               $sql_search_mark = mysql_query('select * from `mark`');
               while($smark = mysql_fetch_assoc($sql_search_mark)) {
             ?>
         <option value="<?php echo $smark['id'];?>"><?php echo $smark['name'];?></option>
            <?php
               }
             ?>
            <script>
              function jsFunction(){
              var select = document.getElementById("selectOpt").value;
               $.post( 
                "modelsearch.php",
                {
                  id: "" + select + ""
                },
                 function(data) 
                 {
                   $('#change_form').html(data);
                 }
                );
              }
                </script>                           
              </select>
             </p>       

             <?PHP
                //this modelsearch.php
               include('../db.php');
                $id = $_POST['id'];
               ?>

2 个答案:

答案 0 :(得分:0)

附上&amp; amp;可能导致渲染输出失败的以下行中的错误标记:

 <option value = "<?php echo $se['id'];?>"><?php echo $se['country'];"></option>

?>">之前缺少</option>,您需要在">之间删除?> <?php 它应该是:

<option value = "<?php echo $se['id'];?><?php echo $se['country'];?>"></option>

并且您也不会在<option> xxx </ouput>之间输出任何值,因此value属性已在<option>中分配,但无需输出任何内容。我的意思是要输出xxx

和FYI,您不需要多次回显值,只需连接值:

 <option value = "<?php echo $se['id'] +""+ $se['country'];?>" ></option>

答案 1 :(得分:0)

首先,您不需要将国家/地区名称保留在阵列更改国家/地区[]仅限国家/地区

<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script language='javascript'>
function showselection() 
 var frm = document.testingform //this is the name of the form can be as your form name
var opt = frm.country  //this is the multiselect option name
var numofoptions = opt.length
    var selValue = new Array  
 var j = 0 
for (i=0; i<numofoptions; i++)  
  {  
if (opt[i].selected === true) 
{  
 selValue[j] = opt[i].value  
j++
}
  }
var myvalues=document.getElementById('yourhiddenvaluename').value=selValue;
 $.post( 'modelsearch.php',{ newva: myvalues }, function( data ) {
$('#change_form').html(data)
});
}  
</script>

<select name='country' multiple onchange='showselection()'> 
//Your values
</select> 
 <input type="text" id="yourhiddenvaluename" name="seletedvalued" />

在modelsearch.php中:

print_r($_POST['newva']);