Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库填充相关下拉列表_Php_Mysql_Ajax - Fatal编程技术网

Php 从数据库填充相关下拉列表

Php 从数据库填充相关下拉列表,php,mysql,ajax,Php,Mysql,Ajax,我想在MIKOA下拉列表中选择一个值后填充WILAYA dropList。以下是我到目前为止所做的。但更改事件时不会填充下拉列表。到目前为止,你做错了什么 在first.php上 <head> <script type = "text/javascript"> function jazaWilaya (mkoa_value) { var xmlhttp = new XHMLHttpRequest ();

我想在MIKOA下拉列表中选择一个值后填充WILAYA dropList。以下是我到目前为止所做的。但更改事件时不会填充下拉列表。到目前为止,你做错了什么

first.php上

<head>
    <script type = "text/javascript">
       function jazaWilaya (mkoa_value)
       {
           var xmlhttp = new XHMLHttpRequest ();
           xmlhttp.onreadystatechange = function ()
           {
               if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
               {
                   document.getElementById("wilaya").innerHTML= xmlhttp.reponseText;
               }
           };
           xmlhttp.open ("GET", "wilaya.php?mkoa="+mkoa_value, true);
           xmlhttp.send ();
       }

    </script>
</head>
<?php
    // put your code here

    $con = mysql_connect("localhost", "root", "root");
    if (!$con)
    {
        echo mysql_error();
    }

    $mkoa = mysql_real_escape_string($_REQUEST["mkoa"]);

    mysql_select_db("dalaliOnline", $con);
    $sql = "SELECT wilaya_jina FROM WILAYA WHERE mkoa_jina ='$mkoa' ";
    $result =mysql_query($sql, $con);


    ?>

下面是我的新答案。下面的原始答案不相关

你的JavaScript不能做任何事情,除非它有一些来自你的脚本的输出。PHP变量对它没有任何用处。一种解决方案是让wilaya.php使用原始代码为选择框创建新选项:

<?php
    $con = mysql_connect("localhost", "root", "root");
    if (!$con)
    {
      // we don't want to output anything if something goes wrong, it'll mess the select up
      die();
    }

    $mkoa = mysql_real_escape_string($_REQUEST["mkoa"]);

    mysql_select_db("dalaliOnline", $con);
    $sql = "SELECT wilaya_jina FROM WILAYA WHERE mkoa_jina ='$mkoa' ";
    $result = mysql_query($sql, $con);
    ?>
    <option>Chagua</option>
    <?php
    while ($row = mysql_fetch_array($result))
    {
    ?>
        <option value = "<?php echo $row['wilaya_id']; ?>"><?php echo $row['wilaya_jina']; ?></option>
    <?php
    }
    ?>
(我假设下面的代码中有一些JS正在使用的输出。)


另外,必须使用mysql扩展,不推荐使用。方便时更新到PDO或mysqli。

在wilaya.php中更正代码:


并从first.php文件中删除以下代码:

Wilaya:应该是
查瓜
而不是威拉亚:
查瓜

我再举一个州和城市的例子,当用户从第一个选择框中选择一个州时,第二个选择框会显示相应的城市。请尝试此操作。 这是
state.php
页面

<?php
mysql_connect("localhost","root","");
mysql_select_db("statename");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function showdetails(str)
{
var xmlhttp;
if (str==0)
  { 
 alert("please select state name");
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("showresult").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","details.php?id="+str,true);
xmlhttp.send();
}
</script>
</head>

<body>
<form>
SELECT STATE:
:<select name="sid" id="sid" onchange="showdetails(this.value)">
                <option value="0">Select State Name</option>
                <?php

                $sql="select sid,statename from state";
                $qry=mysql_query($sql);
                $num=mysql_num_rows($qry);
                if($num>0)
                {
                    while($res=mysql_fetch_array($qry))
                {
                ?>
                <option value="<?php echo $res['sid'];?>"><?php echo $res["statename"];?></option>
                 <?php
                }
                }
                 ?>
             </select>




 CITY NAMES:    
 <div id=showresult></div>

</form>
</body>
</html>

这里有两个表,一个是city表(cid,sid,cityname),另一个是state表(sid,state name)state表的sid是sid city表的外键

<?php
    // put your code here

    $con = mysql_connect("localhost", "root", "root");
    if (!$con)
    {
        echo mysql_error();
    }

    $mkoa = mysql_real_escape_string($_REQUEST["mkoa"]);

    mysql_select_db("dalaliOnline", $con);
    $sql = "SELECT wilaya_jina FROM WILAYA WHERE mkoa_jina ='$mkoa' ";
    $result =mysql_query($sql, $con);


?>

<option>Chagua</option>
<?php
       while ($row = mysql_fetch_array($result))
       {
?>
           <option value="<?php echo $row['wilaya_id']?>"><?php echo $row['wilaya_jina'];?></option>
<?php
       }
?>

在第一个.php文件中更改

维拉亚:

<select id="wilaya" name="wilaya">
    <option>Chagua</option>
</select>

查瓜

我不是有意要保留它,请查看wilaya php上的编辑。注意:即使使用$_GET,它也不会运行查看我的更新-wilaya.php中还有其他代码有输出吗?wilaya.php没有输出任何内容。它只是从数据库中获取数据,这是你的问题。如果没有脚本的一些输出,JavaScript将无法执行任何操作。我现在将更新我的答案。我希望输出显示在WILAYA dropdownlist上;我在SELECT元素的选项标记之间保留了一条echo语句我按照指示做了,我找不到错误,但第二个lıst不会加载。我的Javascript代码写对了吗?@Buzuka是的,你的Javascript代码写对了。但是在ajax调用中,您需要在服务器端脚本中回显或打印您的输出,并通过javascript在特定元素中编写此响应。您发布了答案或一些您认为适合答案的代码??是的,尝试一下这可能会帮到您,而不是像上述问题一样的答案@Arif_suhail_123对不起,您说了什么,如果我理解正确的话,你说的可能对我有帮助不是答案??对不起,如果我弄错了,这个程序就像上面的问题一样,是由@Buzuka开始的。复制页面代码并按照说明创建数据库和表,这样你就能知道这到底是什么了。@sameerkumar我非常理解你的例子,在我当前的代码和thıs之间有一个很好的区别,比如标记,你能不能在没有我们额外的dıv的情况下编写thıs代码?bse我不想改变我工作中目前的dıv安排。
mysql_connect("localhost","root","");
mysql_select_db("statename");
$id = $_REQUEST["id"];
$sql="select * from city where sid='$id'";
$qry=mysql_query($sql);
$num=mysql_num_rows($qry);
?>
<select name="cid" id="cid">
                <option value="0">Select City Name</option>
                <?php
                if($num>0)
                {
                    while($res=mysql_fetch_array($qry))
                {
                ?>
                <option value="<?php echo $res['cid'];?>"><?php echo $res["cityname"];?></option>
                 <?php
                }
                }
                 ?>
             </select>
<?php
    // put your code here

    $con = mysql_connect("localhost", "root", "root");
    if (!$con)
    {
        echo mysql_error();
    }

    $mkoa = mysql_real_escape_string($_REQUEST["mkoa"]);

    mysql_select_db("dalaliOnline", $con);
    $sql = "SELECT wilaya_jina FROM WILAYA WHERE mkoa_jina ='$mkoa' ";
    $result =mysql_query($sql, $con);


?>

<option>Chagua</option>
<?php
       while ($row = mysql_fetch_array($result))
       {
?>
           <option value="<?php echo $row['wilaya_id']?>"><?php echo $row['wilaya_jina'];?></option>
<?php
       }
?>
<select id="wilaya" name="wilaya">
    <option>Chagua</option>
</select>