insert

Robert James M · Dec 10, 2012
mas aku buat form seperti ini
<form class="block-content form" name="form_account_edit" id="form_account_edit" method="post" enctype="multipart/form-data" action="http:haya.php" onsubmit="return IQ.checkForm(this,'checkPasswordAndPicture(document.form_account_edit);');">
   
    <div class="columns">
        <div class="colx2-left">
            
               

                <table cellpadding="3" class="table-padding">
                
            
                
                
                
                    <tr title="Required">
                        <td><b>Produk</b><span class="required">*</span></td>
                        <td>:</td>
                        <td><select name="produk" id="cbproduk" style="width:212px"></select></td> 
					</tr>
                    <tr>
                        <td><b>Unit</b></td>
                        <td>:</td>
                        <td><select name="unit" id="cbunit_mk" style="width:212px"></select></td>
                    </tr>                        
                                   
                </table>
               
        </div>
    </div>
    <div class="block-footer" style="height:30px;">
        &nbsp;
        <div class="float-right">
            <button type="submit"><img src="images/icons/fugue/tick-octagon.png" width="16" height="16"> Save</button>
        </div>
    </div>
</form>

itukan combobox dengan javascript kemudian aku insert dengan kode seperti ini
<?php

  mysql_connect("localhost", "root", "");
  mysql_select_db("combo");
  

  $produk     		= htmlspecialchars($_POST['produk']);
  $unit				= htmlspecialchars($_POST['unit']);

 

  $sql            = "INSERT INTO air VALUES ('$produk','$unit')";


	
  mysql_query($sql) or die ('Failed');
             
  echo  "<h1>Register Success</h1>";
  echo  "<br>";
  
 
 
  
?>      

tapi ko kebacanya angka, bukan textnya misalkan air

terima kasih
Silahkan login untuk menjawab!
0
Loading...
Ellyx Christian · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
mungkin kamu salah bikin comboboxnya, misal
<select name="x">
<option value="1">Satu</option>
<option value="2">Dua</option>
<option value=3">Tiga</option>
</select>
nilai $_POST akan berupa angka 1,2 atau 3 bukan Satu, Dua, Tiga. Apa yang ada didalam attribute value="1" lah yang akan terkirim ke server
0
Loading...
Robert James M · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
tapi kan aku pake javascript
<script language="javascript">
function Load(data,primid){
	$('#loading'+data).empty().append('<img src="img/ajax-loader.gif"/>');
	$.post("option.php",{tipe:data,id:primid},
	function(result){
		$('#cb'+data).html(result);
		$('#loading'+data).empty();
	}
	);
}
$(function(){
	Load('produk',0);
 
	$('#cbproduk').change(
		function(){			
			if($('#cbproduk option:selected').val() !=''){
				Load('unit_mk',$('#cbproduk option:selected').val());
			}
		}
	);
 
});
</script> 
0
Loading...
Ellyx Christian · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
coba liat file option.php
0
Loading...
Robert James M · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
<?php
 
	mysql_connect	('localhost','root','');
	mysql_select_db	('abms');
 
	if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		$tipedata	= $_POST['tipe'];
		$id			= $_POST['id'];
 
		switch($tipedata){
		
			case 'unit_mk':
				$sql='SELECT id,unit FROM '.$tipedata.' WHERE id_mk = "'.$id.'" ORDER BY unit ASC';break;
			case 'produk':
				$sql='SELECT id,kode,nama FROM '.$tipedata.' ORDER BY nama ASC';break;
		}
 
		$kueri=mysql_query($sql);
		echo '<option value=""></option>';
		while($row=mysql_fetch_object($kueri)){
			echo '<option value="'.$row->id.'">';
			switch($tipedata){
			case 'unit_mk':
				echo $row->unit;break;
			case 'produk':
				echo $row->nama;break;
			}
			echo '</option>';
		}
	}
?>

itu mas option.php
0
Loading...
Ellyx Christian · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
bener sudah seperti penjelasan saya pertama kali. Kamu bikin option seperti

echo '<option value="'.$row->id.'">';

jadi yang akan terkirim ke server (terbaca) adalah id dari produk atau unit, bukan nama dari unit atau produk.

Jika kamu bikin option seperti:
<option value="1">Satu</option>
maka di server akan kebaca 1 bukan Satu

Jika kamu bikin option seperti:
<option>Satu</option>
maka di server akan kebaca Satu
demikian pula saat dibikin
<option value="Satu">Satu</option>
di server akan kebaca Satu
0
Loading...
Robert James M · Dec 10, 2012 · 0 Suka · 0 Tidak Suka
hem tapi mas yang aku pikir kan combobox itu pake sistem relations so pake id karena primary, karena id di tabel produk pun terbaca di tabel unit_mk.

jadi mensiasati hal tersebut bagaimana, kalo selama ini aku biarin kaya gitu terus nanti masuk database baru diterjemahin lagi pake select.

maaf kalo salah
0
Loading...
Ellyx Christian · Dec 11, 2012 · 0 Suka · 0 Tidak Suka
Quote:
hem tapi mas yang aku pikir kan combobox itu pake sistem relations so pake id karena primary, karena id di tabel produk pun terbaca di tabel unit_mk.
nah itu dia sudah benar, kenapa untuk insert yang satu ini pengen teks yang tersimpan bukan idnya?
0
Loading...
Robert James M · Dec 11, 2012 · 0 Suka · 0 Tidak Suka
iya mas kan kalo diinsert yang masuk id, nanti buat diterjemahkan harus diselect, jadi bisa mempersingkat atau memperefisien.

mas setelah googling semalaman, aku nemu caranya yaitu seperti ini
<?php

  mysql_connect("localhost", "root", "");
  mysql_select_db("combo");
  

  $produk     		= htmlspecialchars($_POST['produk']);
  $unit				= htmlspecialchars($_POST['unit']);

 

  $sql            = "insert into air (produk,unit) select produk.nama, unit_mk.unit from produk INNER JOIN unit_mk ON produk.id = unit_mk.id_mk and $produk = produk.id";


	
  mysql_query($sql) or die ('failed');
             


 
  
?>      

tapi aku bingung misal ada data baru contohnya lama, kan berarti jadinya seperti ini
<?php

  mysql_connect("localhost", "root", "");
  mysql_select_db("combo");
  

  $produk     		= htmlspecialchars($_POST['produk']);
  $unit				= htmlspecialchars($_POST['unit']);
  $lama				= htmlspecialchars($_POST['lama']);

 

  $sql            = "insert into air (produk,unit) select produk.nama, unit_mk.unit from produk INNER JOIN unit_mk ON produk.id = unit_mk.id_mk and $produk = produk.id";


	
  mysql_query($sql) or die ('failed');
             

  

 
  
?>      

cuma aku bingun di insertnya $lama itu ditaro dimana mas?

terima kasih