查看完整版本: !求助!PHP checkbox與新增多筆資料無法正常insert
頁: [1]

pliceoffice 發表於 2015-7-16 05:31 PM

!求助!PHP checkbox與新增多筆資料無法正常insert

本帖最後由 pliceoffice 於 2015-7-17 12:41 AM 編輯

目前正在研究 PHP checkbox與新增多筆資料結合的系統
但是PHP checkbox可以正常辨識並輸入資料庫但只要一結合新增多筆資料的程式後就無法正常輸入
懇請解答疑惑
php
<?php
if(isset($_POST['btnsave']))
{

include("connMysql.php");
if (!@mysql_select_db("testdatabase")) die("資料庫選擇失敗!");

$chkbox = array('mcr4', 'mcr3', 'mcr2');
$pchanl = $_POST['pchanl'];
$values = array();

foreach($chkbox as $selection )
{ if(in_array($selection, $pchanl))
{ $values[ $selection ] = 1; }
else
{ $values[ $selection ] = 0; }
}

$mcr4=$values['mcr4'];
$mcr3=$values['mcr3'];
$mcr2=$values['mcr2'];

$pmpccollection_array=$_POST['pmpccollection'];
$pmpccdate_array=$_POST['pmpccdate'];
$count=count($pmpccdate_array);

for($i=0;$i<$count;$i++)
{
$testtext=$pmpccollection_array[$i];
for($j=$i;$j<=$i;$j++)
{

$testdate=$pmpccdate_array[$j];
$sql_query = "INSERT INTO datatest (mcr4, mcr3, mcr1, testtext, testdate)
VALUES ('$mcr4','$mcr3','$mcr2','$testtext','$testdate')";

mysql_query($sql_query);

}
}



}
?>HTML
<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Program Alert</title>
</head>
<script language="javascript">
function add_new_data() {
//先取得目前的row數
var num = document.getElementById("mytable").rows.length;
//建立新的tr 因為是從0開始算 所以目前的row數剛好為目前要增加的第幾個tr
var Tr = document.getElementById("mytable").insertRow(num);
//建立新的td 而Tr.cells.length就是這個tr目前的td數
Td = Tr.insertCell(Tr.cells.length);
//而這個就是要填入td中的innerHTML
Td.innerHTML='<td width="50%"><div class="ui-field-contain"><label for="pmpccollection1">異動集數</label><input type="text" name="pmpccollection[]" id="pmpccollection[]"></div></td>';
//這裡也可以用不同的變數來辨別不同的td (我是用同一個比較省事XD)
Td = Tr.insertCell(Tr.cells.length);
Td.innerHTML='<td width="50%"><div class="ui-field-contain"><label for="pmpccdate1">播出日期</label><input id="pmpccdate[]" name="pmpccdate[]" type="date"></div></td>';
//這樣就好囉 記得td數目要一樣 不然會亂掉~
}

function remove_data() {
//先取得目前的row數
var num = document.getElementById("mytable").rows.length;
//防止把標題跟原本的第一個刪除XD
if(num >2)
{
//刪除最後一個
document.getElementById("mytable").deleteRow(-1);
}
}
</script>

<body>

<form name="pchanl" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

<div id="home" data-role="page">
<div data-role="header" data-position="fixed" data-theme="b">
<h3>異動</h3>
</div>
<div role="main" class="ui-content">

<fieldset data-role="controlgroup" data-type="vertical">
<legend>播出頻道:</legend>
<input id="mcr4" value="mcr4" name="pchanl[]" type="checkbox">
<label for="mcr4">MCR4</label>
<input id="mcr3" value="mcr3" name="pchanl[]" type="checkbox">
<label for="mcr3">MR3</label>
<input id="mcr2" value="mcr2" name="pchanl[]" type="checkbox">
<label for="mcr2">MCR2</label>

</fieldset>

<table width="100%" border="0" id="mytable">
 <tr>
 <td width="50%"><a class="ui-btn" onclick="add_new_data(mytable)">增加一欄</a></td>
 <td width="50%"><a class="ui-btn" onclick="remove_data(mytable)">刪除一欄</a></td>
 </tr>
 <tr>
 <td width="50%">
<div class="ui-field-contain">
<label for="pmpccollection">異動集數</label>
<input type="text" name="pmpccollection[]" id="pmpccollection[]">
</div>
</td>
 <td width="50%">
<div class="ui-field-contain">
<label for="pmpccdate">播出日期</label>
<input id="pmpccdate[]" name="pmpccdate[]" type="date">
</div>
</td>
 </tr>

</table>
<input type="submit" value="Save送出申請" name="btnsave">
</div>

<div data-role="footer" data-position="fixed" data-theme="b">
<h3>測試版V1.0</h3>
</div>
</div>

</form>

</body>
</html>




...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

theloserbm 發表於 2015-7-16 08:52 PM

本帖最後由 theloserbm 於 2015-7-16 08:54 PM 編輯

你的程式碼中間有個exit你是要它怎麼活呢...?
還有程式碼要用包起來, 要不然看得眼睛很累

pliceoffice 發表於 2015-7-17 12:42 AM

theloserbm 發表於 2015-7-16 08:52 PM static/image/common/back.gif
你的程式碼中間有個exit你是要它怎麼活呢...?
還有程式碼要用包起來, 要不然看得眼睛很累
...

抱歉 !!已做了修改
那個EXIT
只是為了做測試看SQL碼

htc805 發表於 2015-7-19 09:47 PM

沒有執行結果(錯誤訊息)嗎?我約略看了一下,不知您是否key錯了:

INSERT INTO datatest (mcr4, mcr3, mcr1    <=== 欄位名稱錯誤吧?

另外,for($j=$i;$j<=$i;$j++) 沒意義吧?不就是 $i 嗎?
頁: [1]