Bu, böyle bir araç bina benim ilk kez, bu yüzden benimle çıplak lütfen. JQuery ve AJAX hakkında daha fazla bilgi edinmek için bu yapıyorum.
Temelde, bir arama girdi ve gizli bir div var. Eğer arama girişinin yazmaya başladığınızda, gizli div görünür hale gelir ve sonuçları bu durumda içeri getirilir, ben müşteri isimleri arıyorum.
Bu tüm çalışıyor, ancak ben benim kod iyi olabileceğini düşünüyorum ama başlamak için tam olarak nerede emin değilim. Her keyup benzeri bir dize bulmak için bir veritabanında bir tablo erişen bir PHP komut dosyası ister. Ama benim PHP komut dosyası, ben emin değilim ki bazı JS / jQuery echo'ing ediyorum iyi bir uygulamadır. Aşağıda benim kodudur. Ben bu konuda doğru şekilde gidiyor ya da ben tamamen kapalı baz ve am? Iyileştirilmesi için herhangi bir öneriniz var mı?
Javascript
$("#search").keyup(function() {
$("#search_results").show("fast");
$.ajax
({
type: "POST",
url: "http://localhost:8888/index.php/welcome/search/" + $("#search").val(),
success: function(html)
{
$("#search_results").html(html);
}
});
});
PHP
function search($search_string = false)
{
if ($search_string)
{
$this->db->like('name', $search_string);
$query = $this->db->get('clients');
if ($query->num_rows() == 0)
{
echo "No client exists.";
}
else
{
foreach ($query->result() as $row)
{
echo '<script>';
echo '
$("#client_results_'.$row->id.'").hide();
$("#'.$row->id.'").toggle(function()
{
$.ajax
({
type: "POST",
url: "http://localhost:8888/index.php/welcome/search_client_ads/" + '.$row->id.',
success: function(html)
{
$("#client_results_'.$row->id.'").html(html).show("fast");
}
});
}, function()
{
$("#client_results_'.$row->id.'").hide("fast").html("");
});';
echo '</script>';
echo '<p><span id="'.$row->id.'">'.$row->name.'</span></p>';
echo '<div id="client_results_'.$row->id.'"></div>';
}
}
}
else
{
echo '';
}
}
function search_client_ads($client_id)
{
$query = $this->db->get_where('online_ads', array('client' => $client_id));
if ($query->num_rows() == 0)
{
echo "No ads exist.";
}
else
{
foreach ($query->result() as $row)
{
echo $row->id;
}
}
}