|
|
|
php ส่งข้อมูลจากฟอร์ม แต่เข้าแค่หนึ่งเงื่อนไขค่ะ จากทั้งหมดสี่เงื่อนไข |
|
|
|
|
|
|
|
ปัญหาคือ ไฟล์ A_create_survey.php ส่งข้อมูลเข้าหน้าตัวเองแล้ว จะเช็คเงื่อนไขแล้วเก็บข้อมูลลงฐานข้อมูล แต่ว่าข้อมูลที่ส่งมันเก็บลงแต่เงื่อนไขสุดท้ายอย่างเดียว (sequence)ค่ะ
**อธิบาย ไฟล์ create_form.php จะเป็นการส่งชื่อแบบสำรวจไปยัง A_create_survey.php แล้วจะนำชื่อไปตั้งเป็นชื่อเทเบิ้ลในฐานข้อมูลจากนั้นในหน้าเดียวกัน ก็จะมีฟอร์มเพื่อทำข้อแบบสำรวจแบบต่างๆ ส่งข้อมูลแล้วประมวลผลในหน้าเดียวเพื่อสร้างชื่อแบบสำรวจ ในเทเบิ้ลนั้นๆ
create_form.php
Code (PHP)
<form id="form1" name="form1" method="post" action="A_create_survey.php" onSubmit="JavaScript:return fncSubmit();">
<p id="topic_name">โปรดตั้งชื่อแบบสำรวจ :</p>
<input name="topic_name" type="text" id="inputtopic" size="40" />
<br>
<br>
<input id="inputtopicbut" type="submit" name="submit" value="เริ่มสร้างแบบสอบถาม" />
</form>
A_create_survey.php
Code (PHP)
<?php
@mysql_connect("localhost", "root", "91205") or die(mysql_error());
mysql_select_db("survey_question");
$topic = $_POST["topic_name"];
$sql = "CREATE TABLE $topic(
q_id INT(4) AUTO_INCREMENT PRIMARY KEY,
q_topic TEXT ,
q_choice TEXT ,
q_type INT(2) );";
mysql_query($sql);
if($_POST["textbox"]){
$quest= $_POST['quest'];
$sql = "INSERT INTO $topic VALUES
(0,'$quest','',1);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["radio"]){
$quest = $_POST['quest'];
//แยกแต่ละบรรทัดให้เป็นบรรทัดละ 1 ตัวเลือก
$choices = explode("\n", $_POST['choice']);
//เพิ่มข้อมูลในตาราง choice โดยให้ตัวเลือกละ 1 แถว
//ดังนั้นต้องวนลูปเพื่อเพิ่มข้อมูลทีละแถวตามจำนวนตัวเลือกที่นับได้
for($i = 0; $i < count($choices); $i++) {
if(empty($choices[$i])) {
continue;
}
$cc_data.=$choices[$i].",";
}
$sql = "INSERT INTO $topic VALUES
(0,'$quest','$cc_data',2);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["checkbox"]){
$quest= $_POST['quest'];
//แยกแต่ละบรรทัดให้เป็นบรรทัดละ 1 ตัวเลือก
$choices = explode("\n", $_POST['choice']);
//เพิ่มข้อมูลในตาราง choice โดยให้ตัวเลือกละ 1 แถว
//ดังนั้นต้องวนลูปเพื่อเพิ่มข้อมูลทีละแถวตามจำนวนตัวเลือกที่นับได้
for($i = 0; $i < count($choices); $i++) {
if(empty($choices[$i])) {
continue;
}
$cc_data.=$choices[$i].",";
}
$sql = "INSERT INTO $topic VALUES
(0,'$quest','$cc_data',3);";
@mysql_query($sql) or die(mysql_error());
}
if($_POST["sequence"]){
$quest= $_POST['quest'];
$sql = "INSERT INTO $topic VALUES
(0,'$quest','',4);";
@mysql_query($sql) or die(mysql_error());
}
?>
<article id="article">
<h1 id="head"><?=$_POST["topic_name"]."<br>";?></h1>
<a href="#onebox" ><input id="choicebut" type="button" name="create" value="คำถามปลายเปิด"></a>
<a href="#twobox" ><input id="choicebut" type="button" name="create" value="คำถามแบบเลือกได้ตัวเลือกเดียว"></a>
<a href="#threebox" ><input id="choicebut" type="button" name="create" value="คำถามแบบเลือกได้หลายตัวเลือก"></a>
<a href="#fourbox" ><input id="choicebut" type="button" name="create" value="คำถามแบบจัดอันดับ"></a>
<div id="boxx">
<div id="bigbox">
<div id="onebox">
<form id="form1" name="form1" method="post" action="A_create_survey.php">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ชนิด:</td>
<td>คำถามปลายเปิด</td>
</tr>
<tr>
<td>คำถาม:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td
<br/>
<br/>
</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input id="nextbut" type="submit" name="textbox" value="ข้อถัดไป" /></td>
</tr>
</table>
</form>
</div>
<div id="twobox">
<form id="form2" name="form2" method="post" action="A_create_survey.php">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ชนิด:</td>
<td>คำถามแบบเลือกได้ตัวเลือกเดียว</td>
</tr>
<tr>
<td>คำถาม:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td valign="top">ตัวเลือก:
<br />
(บรรทัดละ <br />
1 ตัวเลือก) </td>
<td><textarea name="choice" cols="37" rows="5" id="choice"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input id="nextbut" name="radio" type="submit" value="ข้อถัดไป" /></td>
</tr>
</table>
</form>
</div>
<div id="threebox">
<form id="form3" name="form3" method="post" action="A_create_survey.php">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ชนิด:</td>
<td>คำถามแบบเลือกได้หลายตัวเลือก</td>
</tr>
<tr>
<td>คำถาม:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td valign="top">ตัวเลือก:
<br />
(บรรทัดละ <br />
1 ตัวเลือก) </td>
<td><textarea name="choice" cols="37" rows="5" id="choice"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input id="nextbut" type="submit" name="checkbox" value="ข้อถัดไป" /></td>
</tr>
</table>
</form>
</div>
<div id="fourbox">
<form id="form4" name="form4" method="post" action="A_create_survey.php">
<table border="0" cellspacing="3" cellpadding="0" align="center">
<tr>
<td>ชนิด:</td>
<td>คำถามแบบจัดอันดับ</td>
</tr>
<tr>
<td>คำถาม:</td>
<td><input name="quest" type="text" id="quest" size="40" /></td>
</tr>
<tr>
<td
<br/>
<br/>
</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<input name="topic_name"type="hidden" value="<?=$_POST["topic_name"];?>" />
<td><input id="nextbut" type="submit" name="sequence" value="ข้อถัดไป" /></td>
</tr>
</table>
</form>
</div>
</div>
</div>
<form>
<a href="JavaScript:if(confirm('คุณต้องการสิ้นสุดการทำแบบสำรวจใช่หรือไม่ ?')==true){window.location='A_saveform.php'};" alt="" ><input id="finishbut" type="button" name="exit" value="สิ้นสุดการทำแบบสอบถาม"/></a>
</article>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-11-03 11:44:23 |
By :
jummu |
View :
1060 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยหน่อยค่าา T T
|
|
|
|
|
Date :
2012-11-03 18:07:36 |
By :
jummu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. การตั้งชื่อนะ ตรงนี้น่ะ $_POST['radio'] , $_POST['textbox'] มันเป็นชื่อสงวนน่ะ มันไม่ควรเอามาใช้เป็นชื่อตัวแปรน่ะ
2. ฟอร์มมันมีเยอะไปไหมน่ะ ในความคิดของเราน่ะ มีแค่ฟอร์มเดียวก็พอ แล้วใช้การเช็คเอาน่ะว่าเข้าเงื่อนไขไหนก็ให้แสดงเฉพาะฟอร์มนั้น
ออกมาทำงานเอาน่ะ
ก็ดูเรื่องการตั้งชื่อตัวแปรก่อนน่ะ ระวังเรื่องคำสงวนน่ะ และลองเช้คดูว่าค่ามันถูกส่งมาครบหรือป่าว ค่าที่รับน่ะมันมีเท่ากับจำนวนของ input ทั้งหมดที่ใช้หรือป่าว
|
|
|
|
|
Date :
2012-11-03 19:47:01 |
By :
บังเอิญผ่านมาเห็น |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ เดี๋ยวจะลองแก้ดูค่ะ
|
|
|
|
|
Date :
2012-11-04 11:32:17 |
By :
jummu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|