สอบถาม : การทำ input radio เพื่อเลือก ข้อมูลใส่ลงใน Mysql

เริ่มโดย pooh20240, 30 มีนาคม 2011, 15:23:53

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

pooh20240

คือผมต้องการ List ข้อมูล จาก feed ขึ้นมาและต้องการ submit ลง db พร้อมๆกันโดยเลือกให้ radio เป็น All Check

ซึ้งปรกติ จะเลือกกด submit ทีละอันๆ ซึ้งค่อนข้างช้ามากๆ

ไครพอมี script ตัวอย่างไหมครับ จะลองนำไปทำดู

ขอบคุณครับ  :wanwan017:
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

aum_mix

ขายที่ดิน 31 ไร่ อยู่ [direct=http://www.thailandpremiumproperty.com]ที่ดินสวย[/direct] ทำเลดีติดถนน เหมาะแก่การลงทุนเป็นอย่างยิ่ง [direct=http://www.thailandpremiumproperty.com]ที่ดินทำเลดี[/direct] และที่ดิน 2,000 ไร่ จังหวัดกาญจนบุรี [direct=http://www.thailandpremiumproperty.com]ที่ดินราคาดี[/direct]

pooh20240

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

aum_mix

ขายที่ดิน 31 ไร่ อยู่ [direct=http://www.thailandpremiumproperty.com]ที่ดินสวย[/direct] ทำเลดีติดถนน เหมาะแก่การลงทุนเป็นอย่างยิ่ง [direct=http://www.thailandpremiumproperty.com]ที่ดินทำเลดี[/direct] และที่ดิน 2,000 ไร่ จังหวัดกาญจนบุรี [direct=http://www.thailandpremiumproperty.com]ที่ดินราคาดี[/direct]

pooh20240

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

pooh20240

มันเป็นแค่ java เลือก all นิครับ

แล้วมันจะ insert เข้า db ยังไง ?
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome

ไม่แน่ใจว่าเข้าใจคำถามถูกหรือเปล่า
ที่อยากคือ ถ้าเลือกอันไหน ก็บันทึกลง Database ด้วยใช่มั๊ยครับ?
หน้าตาประมานี้ป๊ะ?


pooh20240

อ้างถึงจาก: DJJome ใน 30 มีนาคม 2011, 16:13:56
ไม่แน่ใจว่าเข้าใจคำถามถูกหรือเปล่า
ที่อยากคือ ถ้าเลือกอันไหน ก็บันทึกลง Database ด้วยใช่มั๊ยครับ?
หน้าตาประมานี้ป๊ะ?



ช่ายๆครับ ตามรูปเลยครับ
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

pooh20240

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome

อ้างถึงจาก: pooh20240 ใน 30 มีนาคม 2011, 16:42:54
หายไปไหนกันนหมดด :'( :'(

เขาก็ทำงานทำการบ้างสิครับคุณ ไม่ได้มีเวลาเฝ้าบอร์ดทั้งวันนะครับ  :wanwan020:

เอาแนวคิดไปนะครับ

- ตั้งชื่อ checkbox ให้เป็นชื่อเดียวกันหมด เช่นในตัวอย่างผมตั้งเป็น news[]
  ถ้าเราใส่ [] ต่อท้ายชื่อ checkbox การส่งค่าเป็นอาเรย์ (Array)
- ใส่ css คลาสให้กับ check แล้วใช้ java script สั่งงานให้เลือก/ไม่เลือก Check box
- หลังจาก Submit ให้ไปวนลูปเอาจาก $_POST หรือจะทำอะไรก็ไปดัดแปลงเอา

ตัวอย่าง Code http://pastie.org/1734468 ไปแกะเอานะครับ  :wanwan013:

yosima

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="" method="post" name="form1" id="form1">
<input type='checkbox' name='checkall' onclick='checkedAll(form1);'> All
<br>
                  <input type="checkbox" name="chk1" id="chk1" /> 1
  <br>
  <input type="checkbox" name="chk2" id="chk2" /> 2
  <script type="text/javascript">
checked=false;
function checkedAll (frm1) {
var aa= document.getElementById('form1');
if (checked == false)
          {
           checked = true
          }
        else
          {
          checked = false
          }
for (var i =0; i < aa.elements.length; i  )
{

aa.elements[i].checked = checked;
}
}
</script>
</form>
</body>
</html>


ตอนลง db ก็วน loop ไล่เชคว่า checkbox ตัวไหนถูก ติ๊กบ้าง แต่ล่ะภาษาจะไม่เหมือนกัน ส่วนมากจะเชคว่ามันเป็น null หรือเปล่า ประมาณนี้ครับ

pooh20240

อ้างถึงจาก: yosima ใน 30 มีนาคม 2011, 17:53:44
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="" method="post" name="form1" id="form1">
<input type='checkbox' name='checkall' onclick='checkedAll(form1);'> All
<br>
                  <input type="checkbox" name="chk1" id="chk1" /> 1
  <br>
  <input type="checkbox" name="chk2" id="chk2" /> 2
  <script type="text/javascript">
checked=false;
function checkedAll (frm1) {
var aa= document.getElementById('form1');
if (checked == false)
          {
           checked = true
          }
        else
          {
          checked = false
          }
for (var i =0; i < aa.elements.length; i  )
{

aa.elements[i].checked = checked;
}
}
</script>
</form>
</body>
</html>


ตอนลง db ก็วน loop ไล่เชคว่า checkbox ตัวไหนถูก ติ๊กบ้าง แต่ล่ะภาษาจะไม่เหมือนกัน ส่วนมากจะเชคว่ามันเป็น null หรือเปล่า ประมาณนี้ครับ

ขอบคุณมากครับ
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

pooh20240

พบปัญหาใหม่

สามารถเลือกแบบ all ได้แล้ว

แต่เวลากด submit มันเอาตัวสุดท้ายเข้า db และลงซ้ำๆกัน ><  :P
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome


pooh20240

อ้างถึงจาก: DJJome ใน 30 มีนาคม 2011, 18:06:56
ดู code ที่ผมให้ไปหรือยังครับ?

ดูแล้วครับ

แต่งงตรงนี้

for ($i=0;$i<count($card_id);$i++) {
$id=$card_id[$i];


มันคืออะไรครับ
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome

อ้างถึงจาก: pooh20240 ใน 30 มีนาคม 2011, 18:13:24
อ้างถึงจาก: DJJome ใน 30 มีนาคม 2011, 18:06:56
ดู code ที่ผมให้ไปหรือยังครับ?

ดูแล้วครับ

แต่งงตรงนี้

for ($i=0;$i<count($card_id);$i++) {
$id=$card_id[$i];


มันคืออะไรครับ


เอามาจากไหนครับ ในนี้ http://pastie.org/1734468 ไม่มีนะ
ลอง copy จาก http://pastie.org/1734468 ไปสร้างเป็น test.php แล้วลองใช้งานดูครับ จะเข้าใจครับ

พักบ้างนะครับ เหมือนคุณจะเบลอๆ นะครับ

DJJome

ที่ผมไม่วาง code ไว้ในนี้เพราะยาว และไม่แยกสีให้ ทำให้ดูยาก
ให้เข้าไปดูที่ http://pastie.org/1734468 จะดูง่ายกว่า ผมพยายามยกตัวอย่างง่ายๆ ให้เข้าใจแนวคิดก่อนนะครับ

pooh20240

อ่อ ขอบคุณครับ สงสัยจะเบลอ จริงๆ  :P 

เด๋วดูอีกที
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

pooh20240

อ้างถึงจาก: DJJome ใน 30 มีนาคม 2011, 18:19:16
ที่ผมไม่วาง code ไว้ในนี้เพราะยาว และไม่แยกสีให้ ทำให้ดูยาก
ให้เข้าไปดูที่ http://pastie.org/1734468 จะดูง่ายกว่า ผมพยายามยกตัวอย่างง่ายๆ ให้เข้าใจแนวคิดก่อนนะครับ

ตรง

<?php if($_POST) { ?>
        <h3>Result after submit</h3>
        <pre>
        <?php print_r($_POST) ?>
        </pre>
<?php } ?>


คือส่วนที่ทำ insert เข้า db ใช่ไหมครับ

เช่น

<?php if($_POST) { ?>

$query2 = ("INSERT INTO xxxx

        <h3>Result after submit</h3>
        <pre>
        <?php print_r($_POST) ?>
        </pre>
<?php } ?>
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome

แสดงว่าพื้นฐานยังไม่แน่น

ตอนบันทึกใช้แบบนี้ครับ


<?php 
        
if($_POST) {
            
            foreach(
$_POST['news'] as $news_line) {
                
$query "insert into news_table ('', 'content') values('', '$news_line') ";
                
mysql_query($query);
            }
            
        } 
        
?>




อย่าลืม Connect database ก่อนนะครับ

bomload

ค่าใน Form

<form action="" method="post">
<? for($x=1;$x<=10;$x++){?>
<input type="checkbox" name="ck[]" id="ck[]" />
<? }?>
<input name="บันทึก" type="submit" value="bup" />
</form>



ค่าในฐานข้อมูล
<?
if(isset($_POST[bup])){

####### ส่งข้อมูลมาแบบ array เราต้องทำ array อีกที แล้วค่อยแยกออก
$cks=explode(",",@implode(",",$_POST['ck']));


##################แบบที่ 1
for($np=0;$np<count($cks);$np++)
{
$sql="insert into tb_mem values('$cks[$np]')";
mysql_db_query();// ก็ใส่ไปติดต่อฐานข้อมูลแบบไหน
}

################# แบบที่ 2 จะไม่ค่อยใช้
$sql="insert into tb_mem values('$cks[0]','$cks[1]','$cks[2]')";// มีเยอะก็ใส่ไป
mysql_db_query();// ก็ใส่ไปติดต่อฐานข้อมูลแบบไหน



}
?>



รับทำเว็บไซต์

pooh20240

อ้างถึงจาก: DJJome ใน 30 มีนาคม 2011, 18:33:02
แสดงว่าพื้นฐานยังไม่แน่น

ตอนบันทึกใช้แบบนี้ครับ


<?php 
        
if($_POST) {
            
            foreach(
$_POST['news'] as $news_line) {
                
$query "insert into news_table ('', 'content') values('', '$news_line') ";
                
mysql_query($query);
            }
            
        } 
        
?>




อย่าลืม Connect database ก่อนนะครับ

ทดสอบแล้วครับ
มันสามารถ insert เข้า db ได้ครับ แต่มันเอา ข้อมูลบันทัดสุดท้่ายเข้าไป
ตัวอย่างโคส


<tr><td><input type="checkbox" name="news[]" class="target-check"></td>
<td><input name='asin' type='text' value='COD1' style='width:70px;'></td>
</tr>
<tr><td><input type="checkbox" name="news[]" class="target-check"></td>
<td><input name='asin' type='text' value='COD2' style='width:70px;'></td>
</tr>
<tr><td><input type="checkbox" name="news[]" class="target-check"></td>
<td><input name='asin' type='text' value='COD3' style='width:70px;'></td>
</tr>
<tr><td><input type="checkbox" name="news[]" class="target-check"></td>
<td><input name='asin' type='text' value='COD4' style='width:70px;'></td>
</tr>
<tr><td><input type="checkbox" name="news[]" class="target-check"></td>
<td><input name='asin' type='text' value='COD5' style='width:70px;'></td>
</tr>



ล่างสุดเป็น COD5

คือผมเลือก COD4 แต่เวลาซัพมิทมันเอา COD5 ลง DB แทน  :P
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

pooh20240

ได้แล้วครับ   :'(

งมตั้งนาน  :wanwan014: :wanwan014:

ขอบคุณทุกคนมากครับ โคสที่นำมาบอกเป็นประโยชมากครับ  :wanwan017: :wanwan017: :wanwan017:
แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย

DJJome

อันนั้นเป็นแบบยาว ส่วนอันนี้เป็นแบบสั้น


<?php 
if($_POST) {
    
// connect database
    
$dbh mysql_connect('localhost''root''password') or die('can not connect database');
    
// choose database
    
mysql_select_db('test');

    
$query "insert into `news_table` (`content`) values ";
    
$query .= "('" implode("'),('"$_POST['news']) . "')";
    
//echo $query;exit;
            
    
$result mysql_query($query);
    if(
$result) {
      echo 
"Save complete";
    }

    
// close connection
    
mysql_close($dbh);

}
?>



ข้อดีของแบบนี้คือ เรียก mysql_query แค่ครั้งเดียว ส่วน code แบบเก่าต้องเรียกตามจำนวนข้อมูลที่มี
ถ้ามีเยอะแล้วเรียกใช้ foreach() มันจะทำให้ช้านะครับ


-----------------------------
จากตัวอย่าง โครงสร้างฐานข้อมูลผมเป็นแบบนี้

CREATE TABLE `news_table` (
 `id` int(11) NOT NULL auto_increment,
 `content` text collate latin1_general_ci NOT NULL,
 PRIMARY KEY  (`id`)
)