0

リストが変更される前に、リストを毎回編集しようとしています。私がやろうとしているのは、既存のリストをphp関数によって呼び出される別のリストに変更することです。このリストは、最初のリストとSQLデータベースから新しい情報のリストを生成します。

説明するのはかなり難しいので、ここに私のコードがあります:

私のコードのベース

//php & html
....

$cli = lastNameList();       //first list
$tli = firstNameList();   //second list

echo"

$cli
<div id='editHtml'>$tli</div>

";

....

関数(php)

//the functions

function lastNameList(){

$options="<select id='lastNames'>"; 

$sql="SELECT * FROM lastName";
$result=mysql_query($sql); 

$options.="<option value='blank'>-- last names --</option>" ;
while ($row=mysql_fetch_array($result)) { 

$name=$row["name"]; 

$options.="<option value='$name'>$name</option>"; 
} 

$options.= "</SELECT>";
return "$options";
}


function firstNameList(){

$options="<select id='firstNames' style='margin-right:40px;'>"; 

ここで問題が発生しています:

$sql="SELECT DISTINCT Name FROM firstName WHERE LastName ='lastNameSelectedGoesHere'";
//how do i get the value of the last name so i could make a query for it?

//using distinct to make sure there are no duplicates

$result=mysql_query($sql); 

$options.="<option value='blank'>-- first name --</option>" ;
while ($row=mysql_fetch_array($result)) { 

$name=$row["Name"]; 
$options.="<option value='$name'>$name</option>"; 
} 

 $options.= "</SELECT>";
return "$options";
}

js(重要な場合はphpファイル内)

echo"  <script type='text/javascript'>
$('#lastNames').change(function() {

 document.getElementById('eTech').innerHTML="; 

 $ll = firstNameList();
 echo"$ll;

});";

私のjsファイルがphpファイルにあることがわかるように、それは機能します。そこで私がやろうとしたことは、新しい名リストを生成して古いものを置き換えることですが、失敗しました...誰かが答えを持っているか私が何をすべきかへの提案?

4

1 に答える 1

1

これは、ajax と jquery を使用するとまったく複雑ではありません。

簡単な汚い方法はこれを行うことです

<div id="firstName"></div>
<script type='text/javascript'>
$('#lastNames').change(function() {
$('#firstName').load('getfirstname.php?lastname=' + $(this).val());
});
</script>

および getfirstname.php ページの場合

$lastName = mysql_real_escape_string($_GET['lastname']);
$sql="SELECT DISTINCT Name FROM firstName WHERE LastName ='$lastName'";


//using distinct to make sure there are no duplicates

$result=mysql_query($sql); 
$options="<select id='firstNames' style='margin-right:40px;'>";
$options.="<option value='blank'>-- first name --</option>" ;
while ($row=mysql_fetch_array($result)) { 

$name=$row["Name"]; 
$options.="<option value='$name'>$name</option>"; 
} 

 $options.= "</SELECT>";
echo $options;

これは、ajax と jquery を使用して php コードを実行する方法を示す非常に単純なページです。

<?
if(!isset($_GET['value'])):?>
<script src="jquery-1.7.1.js"></script>
<select id="select" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</options>
</select>

<div id="phpoutput"></div>

<script>
    $('#select').change(function() {
    $('#phpoutput').load('?value=' + $(this).val());
    });

</script>
<?else:
    $val = $_GET['value'];
    echo "$val sent to server. $val*3 = " . $val *3;
 ?>
<?endif;?>
于 2012-06-29T05:12:00.577 に答える