私はこのサイト、php、およびajaxを初めて使用しています。解決策を探してみましたが、一部しか見つかりません。これが私がやろうとしていることです.2つのリンク(Make、およびModel)と2つのドロップダウン(Sort By、およびASC / DESC)を含むページがあります。ユーザーが Make リンクをクリックすると、ページが更新され、すべての車 (つまり、すべてのトヨタ車) が表示されます。モデルをクリックすると、ページが更新され、モデルごとにすべての車 (つまり、すべてのカムリ) が表示されます。また、ユーザーが並べ替え (年) もクリックした場合は、メーカー/モデルのいずれかを表示し、年で並べ替える必要があります。ASC/DESC についても同様です。このサイトから、並べ替えの部分を実行するサンプル コードをいくつか見つけましたが、他のドロップダウンとリンクを機能させる方法がわかりません。これが私がこれまでに持っているものです...助けてください!! ありがとう!
inventory.php
<script type="text/javascript">
function changeContent(strOrderBy, strMake)
{
alert(strOrderBy + " " + strMake");
if (strOrderBy=="")
{
// if blank, we'll set our innerHTML to be blank.
document.getElementById("content").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
// create a new XML http Request that will go to our generator webpage.
xmlhttp=new XMLHttpRequest();
}
else
{ // code for IE6, IE5
// create an activeX object
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// on state change
xmlhttp.onreadystatechange=function()
{
// if we get a good response from the webpage, display the output
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("content").innerHTML=xmlhttp.responseText;
}
}
// use our XML HTTP Request object to send a get to our content php.
xmlhttp.open("GET","getinventory.php?orderby="+strOrderBy+"&make="+strMake, true);
xmlhttp.send();
}
</script>
<body>
<div class="colrecNav4">Sort By:
<select name="sort" id="sort" onchange="changeContent(this.value, ???)">
<option value="year">Year</option>
<option value="trim">Trim</option>
<option value="price">Price</option>
<option value="miles">Miles</option>
</select>
<select name="dir" id="dir" onchange="changeContent(this.value)">
<option value="asc">Ascending</option>
<option value="desc">Descending</option>
</select>
</div>
<?php
//reading data from the database
echo '<div class="makemodel"><a href="#" id="byMake">' . $makeFromDb . '</a></div>';
echo '<div class="makemodel"><a href="#" id="byModel">' . $modelFromDb . '</a></div>';
?>
<script>
$(".makemodela").bind("click", function(event){
var div_id=$(this).attr("id");
$.ajax({
type:'POST',
url: 'getinventory.php',
success: function(data){
changeContent($('#sort').val(), div_id);
}
});
});
</script>
....
</body>
getinventory.php
<?php
...
$sql = "SELECT * FROM inventory ORDER BY " . $_REQUEST['orderby'];
$result = mysql_query($sql);
while (...) {
echo "results...."
}
?>
専門家: そこで、changeContent 関数に別のパラメーターを追加し、コードを更新しました。これで、Make または Model リンクをクリックすると、changeContent 関数のアラート メッセージの値を確認できるようになりました。しかし、私はそれを最初にしか見ることができません。その後、何もしません。誰か助けてくれませんか?ありがとう!
編集:だから、並べ替えドロップダウンの後の私の inventory.php ページ
<?php
$make_results = $db->get_results("SELECT * FROM tblmake ORDER BY Make");
foreach ($make_results as $make_result) {
echo '<div class="makemodel"><a href="#" id="' . $make_result->Make . '">' . $make_result->Make . '</a></div>
....
//similar for model link
?>
<script>
$(".makemodel a").bind("click", function(event){
var div_id=$(this).attr("id");
$.ajax({
type:'POST',
url: 'getinventory.php',
success: function(data){
changeContent($('#sort').val(), div_id);
}
});
});
</script>
と私の getinventory.php ページ
$orderby = $_REQUEST['orderby'];
$make = $_REQUEST['make'];
$search_results = $db->get_results("SELECT qry WHERE MAKE=" . $make . " ORDER BY " . $orderby)
//display results
?>