运行不同的脚本时被选中复选框(run different script when check box

2019-10-18 15:49发布

好了,所以这里的交易:

<form enctype="multipart/form-data" class="pdfsub" id="pdfsub"  action="" method="post">
 <td>
 <p>Agent Name:<input type="text" name="agentname" id="agentname" /></p>
  <p>Description: <textarea cols="75" rows="10" draggable="false" name="desc"    value="desc">
 </textarea></p>

 </td>
 <td>
 <p>Current Date: <input type="date" name="date" value="date" /></p>


 <p> Document Name: <select name="pdf" id="pdf" class="pdf" value="pdf">
 <option></option>
   <?php
$x=0;
   if ($handle = opendir('Users/'.$_SESSION['username'].'/uploaded/')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "<option value=".$entry.">$entry\n</option>";
        }
    }
    closedir($handle);
  }
  ?>
    </select></p>
  <p>Processed: <input type="checkbox" name="options[]" onclick="checkSubmit(this,    'mySubmit')" value="y" />    Incomplete: <input type="checkbox" name="options[]"    onclick="checkSubmit(this, 'mySubmit')" value="y" /></p>


<input type="submit" name="submit" value="submit" id="mySubmit" disabled="disabled" />
 </td>
 </form>
 </table>
 <script type="text/javascript">
 function checkSubmit(ele, id) {
x = document.getElementById(id);
if (ele.checked == true) x.disabled = false;
else x.disabled = true;
 }
</script>
<?php
error_reporting(0);
if (isset($_post['submit']['processed']))
{
$checked = $_GET['options'];
for($i=0; $i < count($checked); $i++){
echo "Selected " . $checked[$i] . "<br/>";
}


$host = "host";
$user3 = "user";
$db_name= "dbname";
$pass= "pass";


$con = mysql_connect($host, $user3, $pass);

if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("dbname", $con);
$agent=($_POST['agentname']);
$desc=($_POST['description']);
$date=($_POST['date']);
$pdf=($_POST['filename']);

$sql ="INSERT INTO `documets` (`agentname`, `description`, `date`, `filename`, `numb`) VALUES ('$agent', '$desc', '$date', '$pdf', '1')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error()); 
} 

mysql_close($con);




$srcfile= ('Users/'.$_SESSION['username'].'/uploaded/'.$pdf);
$dstfile= ('Users/'.$_SESSION['username'].'/processed/'.$pdf);
copy($srcfile, $dstfile);
unlink($srcfile);
}

?>
<?php
error_reporting(0);
if (isset($_post['submit']['incomplete']))
{



$host = "host";
$user3 = "user";
$db_name= "dbname";
$pass= "pass";

$con = mysql_connect($host, $user3, $pass);

if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("dbname", $con);
$agent=($_POST['agentname']);
$desc=($_POST['description']);
$date=($_POST['date']);
$pdf=($_POST['filename']);
$sql ="INSERT INTO `documets` (`agentname`, `description`, `date`, `filename`, `numb`) VALUES ('$agent', '$desc', '$date', '$pdf', '1')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error()); 
} 

mysql_close($con);




$srcfile= ('Users/'.$_SESSION['username'].'/uploaded/'.$pdf);
$dstfile= ('Users/'.$_SESSION['username'].'/incomplete/'.$pdf);
copy($srcfile, $dstfile);
unlink($srcfile);

}
?>

我需要以某种方式结合这一切,使这取决于复选框被选中是文件去,但数据仍提交到数据库。 截至目前其没有做任何但那是一个简单的办法,我只是需要正确的结构。

Answer 1:

你的问题不是很清楚,但据我可以看到你问怎么办,这取决于选择复选框,对不同的东西? 我不知道你指的是如何做到这一点在JavaScript或PHP,所以我会添加这两个。

在JavaScript

也许给的两个复选框不同的ID将解决你的问题。 然后,您可以找出哪些复选框通过例如使用检查:

getElementById("checkboxId").checked //either true or false

如果你只是想知道是被点击该复选框,您可以检查它的ID:

checkboxObj.id

凡checkObj是对象在您的复选框的onclick属性传递。

在PHP

在PHP中,当复选框被选中,它的名字 - 值对被提交。 如果它未选中,也不会出现在提交给服务器的数据。 通过检查一定复选框值出现在提交给服务器的数据,你可以检查它是否已被选中。 在你的情况,你可以,如果它的值出现在“选项”阵列中的检查。

你,然而,使用两个复选框相同的值(“Y”),所以你不能看到它们之间的区别。 通过给他们不同的值(如“x”和“y”),你将能够看到哪些复选框被选中。

然后$ _GET数组看起来像这样的情况下,例如,两个复选框被选中:

$_GET["option"][0] === "x";
$_GET["option"][1] === "y";

您还可以遍历他们像你已经做在你的代码。

其他方式

它不需要提交您的复选框都在同一个阵列。 您也可以选择为他们使用不同的名称。 在这种情况下,你就可以用$ _GET数组中使用相应的索引来查找他们。

假设对于复选框的名称为“check1”和“CHECK2”,那么你可以使用下面的代码,以检查他们是否检查:

isset($_GET['check1']) //True if "check1" is checked
isset($_GET['check2']) //True if "check2" is checked


文章来源: run different script when check box is checked