1

編集:私のメインコードはもう機能しません、この関数は機能するはずですか?

<script type="text/javascript" src="jquery-1.7.2.js"></script>

<script>
var second_choice = $('#second-choice').val();
$("#first-choice").change(function() {
$("$second-choice").load("findModel.php?choice=" + $("#first-choice").val());
});
</script>

関連するPHPファイルは次のとおりです。

<?php
include 'dbc.php';
$choice = mysql_real_escape_string($_GET['choice']);

$query="SELECT * FROM `cars` WHERE `DVLAMake`='$choice'";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
    echo "<option>" . $row{'DVLAModel'} . "</option>";
}
?>

データベース接続が機能します。

ロード時に、PHPファイルが最初のドロップダウンに表示されます。

<form name="indexSearch" action="searchResults.php" method="POST">

<select id="first-choice">
<option selected value="base">Please Select</option>
<option value="VAUXHALL">VAUXHALL</option>
<?php 
$sql="SELECT DISTINCT `DVLAMake` FROM `cars`";
$result = mysql_query($sql);
while ($data=mysql_fetch_assoc($result))
{
echo "<option value =\"{$data[DVLAMake]}\" >{$data[DVLAMake]}</option>\n";
} 
?>
</select>

<select id="second-choice">
<option>Please choose from above</option>
</select>
<br />

<input type="submit" style="font-size:14px; padding:3;"value="Submit" size="20" />
</form>

それは機能し、値を選択すると関数が呼び出され、2番目の関数に選択可能なオプションが入力されます。ただし、フォームを投稿すると、2番目のドロップダウンで選択された値は空になりますが、最初のドロップダウンで選択された値は取得されます。

理由は何ですか?

4

3 に答える 3

1

問題は、2番目のselectタグにname属性がないことです。フォームにある場合は、属性に名前がある場合にのみ、投稿を介してリクエストを受け取ります。jqueryを使用している場合は、idで値をフェッチし、ajax経由で投稿できます。jqueryでこのように選択します。

var second_choice = $('#second-choice').val();
于 2012-04-05T09:10:13.907 に答える
0

あなたが書いた

$("$second-choice").load("findModel.php?choice=" + $("#first-choice").val());

それ以外の:

$("#second-choice").load("findModel.php?choice=" + $("#first-choice").val());

$ ->

于 2012-04-05T10:14:50.953 に答える
0

選択した値をどのように変更しますか?たとえばajaxを使用していますか?そして、どのようにデータを送信していますか?ページのリロードでajaxまたは単純なPOSTを使用していますか?

ajaxを使用して何かを変更する場合は、データをajaxで送信する必要があります。これがないと、JSによって生成されたデータは送信されませんが、PHPスクリプトによって生成されたデータは送信されます。

于 2012-04-05T08:58:27.053 に答える