在php中将ajax填充的下拉列表插入数据库

时间:2013-03-11 10:29:25

标签: php mysql ajax

<select id="country" name="country" onChange="getState(this.value)" class="dropdown">
<option value="0">Select Country</option>
<?php 
echo $country;
?>
</select>

上面的代码从数据库中取国家,根据国家使用ajax,我使用下面的代码创建了一个下拉列表,我无法插入状态值。如何在php dbpage中获取状态值以插入状态值

<div id="statediv" >
<select id="ddlstate" name="ddlstate"  class="dropdown" value="0">
<option>Select Country First</option>
</select>
</div>
this is my full ajax code
function getState(countryId)
{       
    var strURL="findState.php?country="+countryId;
    var req = getXMLHTTP();
    if (req) {
        req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200) {                        
                document.getElementById('statediv').innerHTML=req.responseText;                     
            }
            else {
                alert("There was a problem while using XMLHTTP:\n" + req.statusText);
            }
        }
    }           
    req.open("GET", strURL, true);
    req.send(null);
    }
}

这是findState.php

<?php $country=intval($_GET['country']);
    $query="SELECT stateid,statename FROM state WHERE countryid='$country'";
    $result=mysql_query($query);
?>
<select name="state" onchange="getCity(<?php echo $country?>,this.value)">
    <option>Select State</option>
    <?php while($row=mysql_fetch_array($result)) { ?>
        <option value=<?php echo $row['stateid']?>>
            <?php echo $row['statename']?>
        </option>
    <?php } ?>
</select>

3 个答案:

答案 0 :(得分:0)

请使用countryid查找州并以这种方式执行。

<?php $states= getStates($countryid);
$str ='';
$str .='<select id="ddlstate" name="ddlstate"  class="dropdown" value="0">';
foreach($states as $val){
$str.='<option value="'.$val->id.'">'.$val->name.'</option>';
}
$str.='</select>';
echo $str; exit; ?>

这只是您需要在php文件中使用的示例代码

答案 1 :(得分:0)

只要您的Ajax正确生成并填充下拉列表,就像这样:

<select id="country" name="country" onChange="getState(this.value)" class="dropdown">
<option value="0">Select Country</option>
<option value="1">Country1</option>
<option value="2">Country2</option>
<option value="3">Country3</option>
</select>

使用firebug或查看页面的源代码进行检查。一旦你知道这是正确的,提交表单并使用这样的PHP代码来检查:

if( isset($_REQUEST['country'] ) ) {
 echo $_REQUEST['country'];
} else {
 echo "Country not sent from form";
}

一旦您知道从表单发送国家/地区,您就可以使用该值放入数据库或任何您喜欢的地方。

答案 2 :(得分:0)

我猜您插入查询是错误的。检查字段数和提供的值。

insert into query_mas(employee_id,country_id,state_id,city_id,experience,query) values('".$employee_id."','".$country_id."','".$state_id."','".$city_id."','".$e‌​xperience."')";