mengambil nilai dari autocomplete

Robert James M · Apr 22, 2013
mas mau tanya

saya punya code seperti ini


<section class="grid_12">
			<div class="block-border">
<form name="search" method="" action="">  
 Nama Depan: <input type="text" id="suggest" />  

</form><br>			
			
			<div id="users-contain" class="ui-widget">
			<table class="table" cellspacing="0" width="100%" id="pegawaiDetail">
            <thead>
                <tr><th scope="col" style="text-align:center;">No</th>
					<th scope="col" style="text-align:center;">Nama Depan</th>
                    <th scope="col" style="text-align:center;">Nama Belakang</th>
					<th scope="col" style="text-align:center;">Alamat</th>
					<th scope="col" style="text-align:center;">Email</th>
                    <th scope="col" style="text-align:center;">Contact Person</th> 
					<th scope="col" style="text-align:center;" class="table-actions">Actions</th>
                </tr>
            </thead>
	<?php
$no			= 1;
?>	

			            <tbody>   
			<td><?php echo  $no ?></td>						
			<td id="dataNamax"></td>
			<td id="dataNama"></td>
			<td id="dataAlamat"></td>
			<td id="dataUmur"></td>
			<td id="dataTelepon"></td>
			<td class="table-actions">
			<a href="http:pesanan_1,php?kode=dataNIP" title="Delete" class="with-tip"><img src="images/icons/fugue/cross-circle.png" width="16" height="16"></a>
		</td>
			</tbody>
			</table>
			<?php
			$no++;
			?>



nah dengan tambahan javascript seperti ini

  <script language="javascript">
    $(function(){
		/*	id inputan yang akan melakukan proses autocomplete adalah "suggest"
			request data autocomplete menuju ke "search.php" */
		$('#suggest').autocomplete('searchh.php', 
			{
				/*	parameter "parse" pada script ini sebenarnya adalah deklarasi ulang
					dari event parse di library jquery-autocomplete.
					fungsinya adalah untukmenghandle data yang diterima, karena data yang
					diterima adalah Ajax maka penanganannya adalah sebagai berikut: */
				parse: function(data){ 
					var parsed = [];
					for (var i=0; i < data.length; i++) {
						parsed[i] = {
							data: data[i],
							value: data[i].jenis // nama field yang dicari
						};
					}
					return parsed;
				},
				/*	pada parameter formatItem, kita dapat mengcustom tampilan yang akan muncul ketika 
					ada result dari hasil pencarian autocomplete, kalau formatItem ini tidak di deklarasikan
					maka hanya akan muncul berupa daftar nama yang terkesan kaku */
				formatItem: function(data,i,max){
					var str = '<div class="search_content">';
					/* 	tampilkan foto, apabila foto kosong, maka tampilkan default unknown image
						berapapun lebar foto ini, tingginya disesuaikan menjadi 50px agar tidak menghabiskan tempat */
					
					
					/*  variable "data" merupakan variable dengan tipe json atau array assosiatif javascript 1 dimensi 
						oleh karena itu dalam mengambil setiap pada "data" hanya dengan "data.nama_property" */
					str += '<u>'+data.jenis+'</u><br />'+data.alamat+'<br />'+data.contact_person;;
					str += '</div>';
					return str;
				},
				width: 270, // panjang tampilan pencarian autocomplete yang akan muncul di bawah textbox pencarian
				dataType: 'json' // tipe data yang diterima oleh library ini disetup sebagai JSON
			}
		).result( // fungsi ini akan dipanggil setelah user memilih salah satu result pencarian autocomplete
			function(event,data,formated){
				/*  variable "data" merupakan variable dengan tipe json atau array assosiatif javascript 1 dimensi 
					oleh karena itu dalam mengambil setiap pada "data" hanya dengan "data.nama_property" */
				$('#pegawaiDetail').show(); // tampilan table detail yang di hide sebelumnya
				$('#dataNIP').text(data.kode); 
				$('#dataNamax').text(data.jenis);
				$('#dataNama').text(data.nama_belakang);
				$('#dataAlamat').text(data.alamat);
				$('#dataTelepon').text(data.contact_person);
				$('#dataUmur').text(data.email);

			}
		);
	});
  </script>

ditambah file searchh.php

<?php
	/* 
	 * JQuery autocomplete selalu mengirimkan parameter dengan nama "q"
	 * dimana isi dari "q" adalah inputan dari textbox pada file "index.html"
	 * */
	if(isset($_GET['q'])){
		include 'koneksi.php';
		
		/* 
		 * parameter "q" harus di-filter minimal dengan mysql_escape_string 
		 * hanya untuk berjaga-jaga apabila ada inputan dengan karakter khusus
		 * yang error ketika dibaca oleh syntax query MySQL
		 * */
		$param = mysql_escape_string($_GET['q']); 
		
		# lakukan pencarian, tampilkan nama pegawai yang berawalan nilai parameter "q"
		$query = mysql_query("SELECT * FROM nama WHERE jenis LIKE '$param%'") or die(mysql_error());		
		if(mysql_num_rows($query) > 0){
			$data = array(); # siapkan variable untuk menampung keseluruhan data
			while($row = mysql_fetch_object($query)){
				$data[] = $row; # input data ke variable array satu per satu baris hasil query
			}
			/*
			 * Variable yang mengandung keseluruhan data dari query lalu di konversi
			 * ke JSON dengan fungsi dari PHP5 "json_encode". Hasil keluaran ini akan 
			 * diterima dan di proses oleh Ajax di plugin autocomplete pada file "index.html"
			 * */
			die(json_encode($data)); 
			/* 
	
		}
	}
?>



dari ketiga file tersebut kalo dijalankan akan jadi autocomplete, nah pas di autocomple saya masukan huruf maka otomatis di tabel muncul yang dicari.

nah mau tanya bagaimana supaya pas abis muncul di tabel dari autocomplete, itu bisa diaction lagi dengan syarat mengabil id dari data yang muncul??

semoga paham pertanyaanya ya, mohon bantuannya

:P
Silahkan login untuk menjawab!
0
Loading...
Ellyx Christian · Apr 23, 2013 · 0 Suka · 0 Tidak Suka
saya rasa tinggal ditambahkan dibagian resultnya:
seperti:
//..........
.result( // fungsi ini akan dipanggil setelah user memilih salah satu result pencarian autocomplete
			function(event,data,formated){
				/*  variable "data" merupakan variable dengan tipe json atau array assosiatif javascript 1 dimensi 
					oleh karena itu dalam mengambil setiap pada "data" hanya dengan "data.nama_property" */
				$('#pegawaiDetail').show(); // tampilan table detail yang di hide sebelumnya
				$('#dataNIP').text(data.kode); 
				$('#dataNamax').text(data.jenis);
				$('#dataNama').text(data.nama_belakang);
				$('#dataAlamat').text(data.alamat);
				$('#dataTelepon').text(data.contact_person);
				$('#dataUmur').text(data.email);
				//tambah disini misal:
				alert(data.id);
 
			}
		);
0
Loading...
Robert James M · Apr 23, 2013 · 0 Suka · 0 Tidak Suka
mas saya punya kode seperti ini
<script type="text/javascript">

$(function(){
	$("a.add").click(function(){
		page=$(this).attr("href")
		$("#Formcontent").html("loading...").load(page);
		return false
	})
})
	</script>
	<script type="text/javascript">
$(function(){
	$("a.edit").click(function(){
		page=$(this).attr("href");
		$("#Formcontent").html("loading...").load(page);
		return false;
	})
	$("a.delete").click(function(){
		el=$(this);
		if(confirm("yakin ingin di hapus?"))
		{
			$.ajax({
				url:$(this).attr("href"),
				type:"GET",
				success:function(hasil)
				{
					if(hasil==1)
					{
						el.parent().parent().fadeOut('slow');
					}
					else
					{
						alert(hasil);
					}
				}
			})
		}
		return false;
	})
})
</script>
  <link rel="stylesheet" href="jquery-ui-themes-1.10.2/themes/smoothness/jquery-ui.css" />
  <script src="jquery-1.9.1.js"></script>
  <script src="jquery-ui-1.10.2/ui/jquery-ui.js"></script>
  
  <script>
  $(function() {
    var name = $( "#name" ),
      email = $( "#email" ),
      password = $( "#password" ),
      allFields = $( [] ).add( name ).add( email ).add( password ),
      tips = $( ".validateTips" );
 
    function updateTips( t ) {
      tips
        .text( t )
        .addClass( "ui-state-highlight" );
      setTimeout(function() {
        tips.removeClass( "ui-state-highlight", 1500 );
      }, 500 );
    }
 
    function checkLength( o, n, min, max ) {
      if ( o.val().length > max || o.val().length < min ) {
        o.addClass( "ui-state-error" );
        updateTips( "Length of " + n + " must be between " +
          min + " and " + max + "." );
        return false;
      } else {
        return true;
      }
    }
 
    function checkRegexp( o, regexp, n ) {
      if ( !( regexp.test( o.val() ) ) ) {
        o.addClass( "ui-state-error" );
        updateTips( n );
        return false;
      } else {
        return true;
      }
    }
 
    $( "#dialog-form" ).dialog({
      autoOpen: false,
      height: 500,
      width: 625,
      modal: true,
      
      close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
      }
    });
 
    $( "#create-user" )
      .button()
      .click(function() {
        $( "#dialog-form" ).dialog( "open" );
      });
	  
  });
  </script>
<style type="text/css">
label.error {
	color: red;
}
</style>

terus punya php seperti ini
<form class="block-content form" action="qqq.php" method="post" name="myform" onSubmit="return validasi()">
<div class="columns">
			   
			        <fieldset>
					<table cellpadding="3" class="table-padding">
                    <tr title="Required">
                        <td><b>Kode</b></td>
                        <td>:</td>
                        <td><input type="text" name="kode" class="required"  style="width:300px" value="" /></td>
                    </tr>
					<tr title="Required">
                        <td><b>Nama Depan</b></td>
                        <td>:</td>
                        <td><input type="text" name="jenis" class="required"  style="width:300px" value="" /></td>
                    </tr>
					<tr title="Required">
                        <td><b>Alamat</b></td>
                        <td>:</td>
                        <td><input type="text" name="alamat" class="required"  style="width:300px" value="" /></td>
                    </tr>				
					</table>
					</fieldset>
						

			</div>
			<div class="block-footer" style="height:30px;">
        &nbsp;
        <div class="float-right">
			<button type="submit" name="submit"><img src="images/icons/fugue/tick-circle.png" width="16" height="16">Save</button>
			<button type="button" class="grey" onclick="this.form.reset();">Reset</button>
			<button type="button" class="red" onclick="document.location.href='http:wx.php';">Cancel</button> 
        </div>			
    </div>
  </form>
</div>
    <div id="users-contain" class="ui-widget">
        <table class="table" cellspacing="0" width="100%" id="x">
            <thead>
                <tr>
				<th class="black-cell"><span class="loading"></span></th>
					<th scope="col" style="text-align:center;">No</th>
					<th scope="col" style="text-align:center;">Kode</th>
					<th scope="col" style="text-align:center;">Nama Depan</th>
					<th scope="col" style="text-align:center;">Alamat</th>
                    <th scope="col" style="text-align:center;" class="table-actions">Actions</th>   
                </tr>
            </thead>
<?php
include "koneksi.php";
$sqlCount = "select count(kode) from nama";  
$rsCount = mysql_fetch_array(mysql_query($sqlCount));  
$banyakData = $rsCount[0];  
$page = isset($_GET['page']) ? $_GET['page'] : 1;  
$limit = 10;  
$mulai_dari = $limit * ($page - 1);  
$sql_limit = "select * from nama order by kode limit $mulai_dari, $limit";								
$rawr = mysql_query($sql_limit);  

 $no			= 1;
	while($data = mysql_fetch_array($rawr)) 
	{
	

			
              ?>
            <tbody>
			<td align="center">
			<input type="checkbox" name="item[]" id="item[]" value="<?php echo $data['jenis'];?>" /></td>
			<td><?php echo  $no ?> </td>            
			<td><?php echo  $data['kode']; ?> </td>
			<td><?php echo  $data['nama']; ?> </td>
			<td><?php echo  $data['alamat']; ?> </td>
			<td class="table-actions">
			<a href="http:update_supplier.php?kode=<? echo $data['kode'];?>" class="edit" title="Update"><img src="images/icons/fugue/tick-circle-blue.png" width="16" height="16"></a>
			<a href="http:setting_supplier.php?jenis=<? echo $data['jenis'];?>" class="edit" title="Setting"><img src="images/icons/fugue/control.png" width="16" height="16"></a>
			<a href="http:delete_wx.php?kode=<?php echo $data['kode']?>" title="Delete" class="with-tip" onclick='return confirm("are you sure want to delete this one ?");'><img src="images/icons/fugue/cross-circle.png" width="16" height="16"></a>
		</td>
  </tr>
  
  
<?php
	$no++;
  
  
  
	}
?>
</table>
<ul class="message no-margin">
			<li>
					<?php
$banyakHalaman = ceil($banyakData / $limit);  
echo 'Page: ';  
for($i = 1; $i <= $banyakHalaman; $i++){  
 if($page != $i){  
 echo '[<a href="wx.php?page='.$i.'">'.$i.'</a>] ';  
 }else{  
 echo "[$i] ";  
 }  
} 
	?>

	</li>
	</ul>
		<div id="Formcontent"></div>
<button id="create-user">New User</button>

nah kalo dijalanin nanti ada tombol New User lalu kalo diklik muncul form jquery di tengah untuk insert, nah abis insert langsung muncul dihalaman yang sama.

nah aku mau tanya bagaimana kalo untuk yang edit, apa bisa juga misalkan setelah di insert lalu ada tombol khusus lalu muncul form edit dari user yang sudah di insert sebelumnya?

:)