我将从表单检查的值插入到db中,但插入的值在末尾有斜杠(/)。
我从带有复选框的表单中的数组插入sql数据库,我只想插入选中的值。
插入对于所有值都是可以的,但它们最后会出现斜线,我不明白为什么会这样。
这是表格
<form role="form" method="POST" action="add_payroll.php">
<label>Employees</label><br>
<?php
// include "../includes/connect.php";
$cs = mysql_query("SELECT user_Idnum, salary, user_fname, user_lname,user_mname from tbl_user_details");
if($cs==true){
$count=mysql_num_rows($cs);
while($row=mysql_fetch_assoc($cs)){
extract($row);
echo '<input type="checkbox" name="detail_Id[]" value='.$user_Idnum.'/>'.$user_fname." ".$user_mname." ".$user_lname.'<br>';
}
}
?>
<label>Description</label>
<textarea class="form-control" name="description"></textarea>
<label>Transaction Date</label>
<input size="16" type="text" readonly name="transaction_date"class="form_datetime form-control">
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn dark btn-outline">Cancel</button>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
这是php脚本
<?php
include "../functions/connect.php";
$ids = $_POST['detail_Id'];
$desc = $_POST['description'];
$time = $_POST['transaction_date'];
foreach ($ids as $va) {
$run1= mysql_query("insert into tbl_payroll(detail_Id, description, transaction_date) values('$va', '$desc', '$time' )");
if($run1==true)
{
echo '<script language="javascript">';
echo 'alert("Successfully Added")';
echo '</script>';
echo '<meta http-equiv="refresh" content="0;url=report.php" />';
}
}
?>
答案 0 :(得分:1)
更改
echo '<input type="checkbox" name="detail_Id[]" value='.$user_Idnum.'/>'.$user_fname." ".$user_mname." ".$user_lname.'<br>';
要
echo '<input type="checkbox" name="detail_Id[]" value="'.$user_Idnum.'"/>'.$user_fname." ".$user_mname." ".$user_lname.'<br>';
通过在value属性周围没有引号,该值内的任何内容都会有一个尾随斜杠连接到它的值。
您可能不应该在循环中写出javascript和元刷新 - 刷新将在循环的第一次迭代中触发,后续语句将不会被执行。
另外值得注意的是使用现已弃用的mysql
函数 - 升级到mysqli
或PDO
并使用prepared statements
来防止SQL注入,这是代码容易受到攻击。
答案 1 :(得分:1)
<?php
include "../functions/connect.php";
$ids = $_POST['detail_Id'];
试
if(substr($ids, -1) == '/') {
$ids = substr($ids, 0, -1);
}
或
$ids = rtrim($ids,"/");
...
$desc = $_POST['description'];
$time = $_POST['transaction_date'];
.......