radio button ทำไมของผม มันแค่ติ้กอันล่างสุดมันกับ ไม่เช็คช่องว่างอื่นเลย
Code (PHP)
<?
session_start();
if ($_SESSION["UserID"]=='')
{
echo "<meta http-equiv='refresh' content='0;URL=index.php'>";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
.style17 {font-family: Tahoma, Arial, Helvetica, sans-serif;
font-size: 12px;
}
.style18 {font-size: 14px;
font-weight: bold;
}
.style19 {
font-size: 36px;
color: #2f4f4f;
}
.style20 { font-size: 24px;
font-weight: bold;
}
.style23 {font-size: 16px}
-->
</style>
<h1 align="center"><img src="img/h-g4s.png" width="1024" height="125" align="top"></h1>
<p align="center" class="style24 style1 style19"><strong>Check List</strong></p>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="993" border="0" align="center" bgcolor="#2f4f4f">
<tr>
<th width="950"><span class="style17"><span class="style18">select Department :</span>
<select name="select" id="select">
<option selected="selected">Choose Department</option>
<option value="1">MSS</option>
<option value="2">FSS</option>
</select>
</span>
<input type="submit" value="OK."></th>
</tr>
</table>
</form>
<form name="form4" method="post" action="auditor_page.php">
<div align="center"><br>
<input name="imageField" type="image" src="img/back-to-menu.png" width="120" height="30" border="0">
</div>
</form>
<?
if($_GET["select"] != "")
{
include "connectdatabase.php";
$strSQL = "SELECT * FROM question_form WHERE (".$_GET["select"].")";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
mysql_query('SET NAME UTF8');
mysql_query('SET character_set_results=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 20; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
//$strSQL .=" order by No ASC LIMIT $Page_Start , $Per_Page";
//$objQuery = mysql_query($strSQL);
?>
<?php
$form_id = $_GET["select"];
include "connectdatabase.php";
$sql = "SELECT * FROM question_list
WHERE qtn_form_id = $form_id";
$qry = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($qry)){
$id = $row['qtn_id'];
echo '<script type="text/javascript">';
echo "var id = '$id';";
echo '</script>';
?>
<script type="text/javascript">
function fncSubmit()
{
if(document.getElementById('c_id1'+id+'').checked == false && document.getElementById('c_id2'+id+'').checked == false)
{
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
}
</script>
<?
}
?>
<form name="frmMain" method="POST" action="<?=$_SERVER["PHP_SELF"];?>?Page=<?=$Page;?>&select=<?=$_GET["select"];?>" onSubmit="JavaScript:return fncSubmit();"><p>
<input type="hidden" name="hdnCmd" value="">
<?php
$form_id = $_GET["select"];
include "connectdatabase.php";
$sql = "SELECT * FROM question_form WHERE qfrm_id = $form_id";
$qry = mysql_query($sql) or die(mysql_error($sql));
$row = mysql_fetch_array($qry);
echo '<center>','<h3>',$row['qfrm_title'],'</h3>','</center>';
?>
<table width="1000" border="1" align="center">
<tr>
<!--<th width="85" scope="col" bgcolor="#2f4f4f">ลำดับ</th>-->
<th width="1015" scope="col" bgcolor="#2f4f4f">หัวข้อการตรวจสอบ</th>
<th width="85" scope="col" bgcolor="#2f4f4f">สอดคล้อง</th>
<th width="85" scope="col" bgcolor="#2f4f4f">บกพร่อง</th>
</tr>
<?php
include "connectdatabase.php";
$sql = "SELECT * FROM question_list
WHERE qtn_form_id = $form_id";
$qry = mysql_query($sql) or die(mysql_error());
?>
<? while($row = mysql_fetch_array($qry)){
$titleid = $row['qtn_title_id'];
$title = $row['qtn_title'];
$id = $row['qtn_id'];
?>
<tr bgcolor="#CCCCCC">
<!--<td><center><?=$row['qtn_id']?></center></td>-->
<td><h4><?=$titleid?></h4><p>
<?=$title?></td>
<td><center><input type="radio" name="choose<?=$id?>" id="c_id1<?=$id?>" value="1"/></center></td>
<td><center><input type="radio" name="choose<?=$id?>" id="c_id2<?=$id?>" value="0"/></center></td>
</tr>
<?
}
?>
</table>
<p>
<center>
<input type="submit" name="submit" value="Save" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input type="reset" name="Reset" value="Cancle">
</center>
</form>
นี้ code ทั้งหมดครับ รบกวนช่วยดูให้ที่
**** มันไม่เช็คช่องว่างอื่นเลย เมื่อกดติ้กแค่อันสุดท้ายอันเดียว ****
<?
}
?>
<? include "connectdatabase.php";
if($_POST["hdnCmd"]=="Update")
{
if(isset($_POST['submit']))
{
echo "<script>alert('Save Check List Completed');</script>";
$sql = "SELECT * FROM question_list
WHERE qtn_form_id = $form_id";
$qry = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($qry)){
$id = $row['qtn_id'];
$strSQL1 = ("INSERT INTO question_answer (ans_qtn_ref,ans_qtn_value,user_id)
values ($id,".$_POST["choose$id"].",".$_SESSION["UserID"].")");
$objQuery = mysql_query($strSQL1);
}
}
?>
<?
}
?>
<p align="center"><img src="img/f-g4s.png" width="1007" height="30"></p>
Tag : PHP
Date :
2014-11-06 15:44:38
By :
5170
View :
14699
Reply :
14
ลองภาพประกอบด้วยครับ
Date :
2014-11-06 16:03:16
By :
mr.win
แบบนี้เลยครับ
Date :
2014-11-06 16:23:27
By :
5170
Code (JavaScript)
<script type="text/javascript">
function fncSubmit()
{
if(document.getElementById('c_id1'+id+'').checked == false && document.getElementById('c_id2'+id+'').checked == false)
{
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
}
</script>
ตัวแปร id ลอยมาจากไหนครับ ไม่เห็นมีการกำหนดไว้ และ ไม่มี loop เพื่อกำหนด การอ่าน tag radio มาตรวจสอบเลยครับ
Date :
2014-11-06 17:03:23
By :
Chaidhanan
Code (PHP)
<?php
$form_id = $_GET["select"];
include "connectdatabase.php";
$sql = "SELECT * FROM question_list
WHERE qtn_form_id = $form_id";
$qry = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($qry)){
$id = $row['qtn_id']; <<<<<<<<<<<<<<<<<<<< นี้ไงครับ ตัวแปร id
echo '<script type="text/javascript">';
echo "var id = '$id';"; <<<<<<<<<<<<<<<<<<< นี้อีกครับ
echo '</script>';
?>
<script type="text/javascript">
function fncSubmit()
{
if(document.getElementById('c_id1'+id+'').checked == false && document.getElementById('c_id2'+id+'').checked == false)
{
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
}
</script>
ประวัติการแก้ไข 2014-11-06 17:16:16
Date :
2014-11-06 17:07:38
By :
5170
มันอยู่คนละส่วนกันนะครับ Server กับ client เอา javascript มา ใว้ใน php loop มันไม่ถูกครับ
ส่วนของ input radio เพิ่ม class เข้าไปหน่อยครับ สีแดง แค่ อันแรกของแต่ละ record นะครับ
<td><center><input type="radio" class="radio1" name="choose<?=$id?>" id="c_id1<?=$id?>" value="1"/></center></td>
<td><center><input type="radio" name="choose<?=$id?>" id="c_id2<?=$id?>" value="0"/></center></td>
ส่วน script อันข้างล่างนี้ ย้ายไป ก่อน <body> ซื้งผมไม่เห็นอีกเหมือนกัน ไม่ต้องเอาไว้ใน loop
Code (JavaScript)
<script type="text/javascript">
function fncSubmit(){
var rdo = document.getElementsByClassName('radio1');
var ln=rdo.length;
var chk = true;
var id='';
for(var i = 0; i<ln; i++){
id = rdo.item(i).name.substring(6);
if(!(document.getElementById('c_id1'+id+'').checked || document.getElementById('c_id2'+id+'').checked) ){
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
} return true;
}
</script>
และการอ้างอิง ตัวแปร php ใน html+javascript ต้องกำหนด tag php ด้วยครับ
Code (JavaScript)
<script>
var id=<?php echo $id; ?>;
</script>
ปล. โอเคครับผมอ่านไม่ละเอียด
Code (PHP)
echo '<script type="text/javascript">';
echo "var id = '$id';"; <<<<<<<<<<<<<<<<<<< นี้อีกครับ
echo '</script>';
แต่ มันก็ใช้ไม่ได้ครับ ลอง วิว source ดูครับ จะเห็น function fncSubmit() หลายอัน ซ้ำกันน่ะครับ และ var id=?; หลายอัน
โดยมันจะทำงาน ค่าสุดท้ายอันเดียวครับ
ประวัติการแก้ไข 2014-11-06 17:29:19
Date :
2014-11-06 17:24:14
By :
Chaidhanan
อันนี้คือไม่ได้เลือกอันไหนเลย มันกับตรวจค่าว่างให้ถูกต้อง
***อีกอันคือ เลือกไม่ครบ แต่เลือกอันสุดท้ายด้วย มันกับ save ให้***
Date :
2014-11-06 17:32:18
By :
5170
ขอ view source มาดูหน่อยครับ
Date :
2014-11-06 17:41:58
By :
Chaidhanan
View source คืออะไรหรอครับ ถามแบบโง่ๆเลยครับ ไม่รู้จิงๆคับ
Date :
2014-11-06 19:57:09
By :
5170
ลองคลกขวา บนเพจ thaicreate นี่แหล่ะครับ เป็น tool ของ browser ในการแสดง โค๊ด HTML ครับ
ปล. ถ้าเป็น ภาษาไทย ก็ รหัสต้นฉบับ (บนโครม)
ประวัติการแก้ไข 2014-11-06 20:56:00
Date :
2014-11-06 20:55:06
By :
Chaidhanan
ตอนนี้ได้แล้วครับ ขอบคุณมากครับ
แต่คืออยากรู้ว่า Code javascript อันที่คุณให้ผมมานี้ รบกวนช่วยอธิบายการทำงานของมันแบบละเอียดหน่อยได้ไหมครับ
เพราะผมแค่เอา code javascript ของคุณไปใส่มันก็ใช่ได้เลย เลยอยากรู้ว่า แต่ละบรรทัด มันคืออะไรบ้างอ่าครับ
รบกวนอีกที่ครับ
นี้คือ Code ที่คุณให้มาอ่าครับ
Code (JavaScript)
<script type="text/javascript">
function fncSubmit(){
var rdo = document.getElementsByClassName('radio1');
var ln=rdo.length;
var chk = true;
var id='';
for(var i = 0; i<ln; i++){
id = rdo.item(i).name.substring(6);
if(!(document.getElementById('c_id1'+id+'').checked || document.getElementById('c_id2'+id+'').checked) ){
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
} return true;
}
</script>
Date :
2014-11-07 09:39:23
By :
5170
Code (JavaScript)
<script type="text/javascript">
function fncSubmit(){
var rdo = document.getElementsByClassName('radio1'); // rdo = list ของ input radio อันแรก ของทุก id
var ln=rdo.length; // หาจำนวน ของ input radio อันแรก ซึ่งควรเท่ากับจำนวน id
// var chk = true; อันนี้เอาออกครับ ลืมลบ ว่าจะกำหนดค่าก่อน แต่ไม่ต้อง
var id='';
for(var i = 0; i<ln; i++){
id = rdo.item(i).name.substring(6); // กำหนดค่า id จากชื่อ (name) ของ input radio
if(!(document.getElementById('c_id1'+id+'').checked || document.getElementById('c_id2'+id+'').checked) ){
// ตรวจสอบปุ่มถ้า ไม่ได้กด ทั้งสองอัน ให้แสดง alert แล้วจบ function
alert('Please Check All Before Save \n(กรุณาตรวจสอบให้ครบทั้งหมดก่อนการบันทึก)');
return false;
}
} return true;
}
</script>
Date :
2014-11-07 10:41:27
By :
Chaidhanan
ยัง งง อยุ่ตรงนี้อ่าครับ
var ln=rdo.length; ตรงชื่อ length มันคืออะไรหรอครับ
id = rdo.item(i).name.substring(6); // กำหนดค่า id จากชื่อ (name) ของ input radio
item นี้คืออะไรหรอครับ
substring() นี้คืออะไรหรอครับ แล้วใน (6) นี้คืออะไรหรอครับ
Date :
2014-11-07 11:00:02
By :
5170
length เป็น function สำหรับการหาค่าจำนวนตัวอักษร กรณีเป็น string
หรือ จำนวนของ element ในกรณีที่เป็น array
item เป็น function ในการเรียกใช้ element ของ object array
substring เป็น function อ่านค่า บางค่า จาก string โดยการ กำหนด จุดเริ่มต้น และหรือ จุดสุดท้าย
ถ้าอยากได้ละเอียดกว่านี้ ก็หาอ่านได้จาก พี่ กูฯ นะครับ เสริช หาเอาหน่อยครับ
Date :
2014-11-07 11:30:50
By :
Chaidhanan
Load balance : Server 00