其实我是非常新的php ..我有一个任务,从数据库中选择记录作为复选框选中。当我取消选中一个复选框时,它应该从我的数据库中删除该特定记录..
我的代码是
<?php
if(isset($_POST['delete']))
{
$test=$_POST['test'];
$qun1=$_POST['question1'];
//DB connection
$CON=mysql_connect("localhost","root","");
mysql_select_db("Dbname");
if($qun1!=0 && $test!=0)
{
foreach($qun1 as $qunestion)
{
echo $question; //this is for testing
$query=mysql_query("delete from test_question where test_questions_id='$test' AND question_id IN ('$question') " ) or die(mysql_error());
}
if($query)
{
echo "success";
}
else
{
echo "No";
}
}
}
?>
我的代码工作正常但是如果我在IN的位置使用NOT IN它不工作..为什么?如果取消选中记录它应该删除..我已经从数据库检索记录作为检查字段..
我的HTML标记:
<script>
function fun2(ts)
{
$.post("ajax2.php",{qs:ts},function(data)
{
document.getElementById('div1').innerHTML=data
})
}
</script>
<form action="somepage.php" method="post">
//dynamic selection test code
<select name="test" id="test" onChange="fun2(this.value);">
<option value="">Select Test</option> </select>
<div id="div1" > </div>
<input type="submit" name="delete" value="Delete" >
</from>
我的ajax代码:
<?php
$qs=$_REQUEST['qs'];
mysql_connect("localhost","root","");
mysql_select_db("advancedge");
$sql=mysql_query("select question_id from test_question where test_questions_id='$qs'");
if($sql)
{
while($rec=mysql_fetch_row($sql))
{
echo "<input type='checkbox' name='question1[]' value='$rec[0]' checked='checked' >";
}
}
?>
答案 0 :(得分:0)
如果我理解正确,您希望在取消选中该项目后立即删除?要检查是否取消选中复选框,您必须使用javascript。 PHP在服务器上运行,而不是在客户端运行(你可以使用ajax,但我建议不要这样做)。
我建议您在表单提交时删除任何内容,如果您不知道如何操作,我可以告诉您是否发布了html部分。
我还建议你从互联网上的课程学习PHP,这样你就会了解一些标准并获得一些好的做法。 (Youtube或Lynda.com)
答案 1 :(得分:0)
这是一篇旧帖子,但如果有人在这里结束 - 这可能会解决问题:
<?php
echo "<form action='' method='post'>";
echo "<input type='checkbox' id='chk_1' name='chk_1' value='First' />chk 1 </br>";
echo "<input type='checkbox' id='chk_2' name='chk_2' value='Second' />chk 2 </br>";
echo "<input type='submit' />";
echo "</form>";
$check = array();
// Set all checkboxes to 0 if unchecked
for($i = 1; $i<=2; $i++) {
$check["chk_$i"] = isset($_POST["chk_$i"]) ? 1 : 0;
}
// Output of the array
echo '<pre>';
var_export($check);
echo '</pre>';
代码会将所有未选中的复选框设置为0。 然后你必须使用这样的东西来处理它:
<?php
if($_GET['chk_1'] == 0) {
$sql = "DELETE FROM mytable WHERE...";
}