3

都市の動的選択リストの解決策を見つけたいと思っています。現在、都市は正常に入力されていますが、選択した都市をデータベースに投稿できません。

ここにphpファイルがあります:

<html>
<head>
<script type="text/javascript" src="show_cities.js"> </script> 
</head>
<body>
<?php 
session_start;
//library   
include("conn.php");
?>
<form enctype='multipart/form-data' action='posting_process.php' method='post'>");
<!-- **************************** Country select list ********************** -->
Country: 
<select name="country" onChange="showCities(this.value)">
<?php $sql = 'SELECT country_no, country_name FROM country '.'ORDER BY country_no';
    $rs = mysql_query($sql);
    echo "<option value='0'>"."Select a Country"."</option>\n  ";
    while($row = mysql_fetch_array($rs))
    {
echo "<option value=\"".$row['country_no']."\">".$row['country_name']."</option>\n  ";
    }
?>
</select>
City: <div id="txtCity" class="city_no">
<input type=submit name=action value=Post>
</body>
</html>

ここにJavaScriptがあります:show_cities.js

// JavaScript Document
/* <script type="text/javascript"> */
function showCities(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
} 
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("txtCity").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get_cities.php?q="+str,true);
xmlhttp.send();
}
/* </script> */

ここにphpファイルがあります:get_cities.php

<?php
session_start;
//library   
include("conn.php");
$q=$_GET["q"];

$sql="SELECT * FROM city WHERE country_no = ".$q;
$result = mysql_query($sql);

echo "<select name='city'>";

while($row = mysql_fetch_array($result))
{

echo "<option value=\"".$row['city_no']."\">".$row['city_name'] . "</option>\n";
}
echo "</select>";

?>

市の関係を返す/表示する次のことを言及する方法がわかりません。

4

1 に答える 1

0

jQuery Ajax を使用してデータをバックエンドの php コードに送信し、応答を受信して​​みませんか。あなたのphpコードは問題ないようです。次のメカニズムを使用してajaxを操作することをお勧めします。

フロントエンドの HTML ページにある国リストに「countrylist」として id を追加してください。

また、ajax 呼び出しには、javascript の代わりに次のコードを使用します。

$(function (){
    $('#countrylist').change(function() {
        var sel_val=$("#countrylist").val();
        $.ajax({
           url: 'get_cities.php?q='+sel_val,
           success: function(data) {
             $('#txtCity').html(data);
           }
        });
    });
});

また、この JavaScript コードを追加する前に、jquery ライブラリを追加したことを確認してください。

お役に立てれば。

ありがとう

于 2012-08-15T04:38:10.517 に答える