Итак, вот сделка:
<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); } ?>
мне нужно каким-то образом объединить все это, чтобы в зависимости от того, какой флажок выбран, где находится файл, но данные все равно передаются в базу данных. на данный момент его не делать, но это простое исправление, мне просто нужна правильная структура.
Ваш вопрос не очень ясен, но насколько я вижу, вы спрашиваете, как делать разные вещи, в зависимости от того, какой флажок выбран, не так ли? Я не уверен, если вы имеете в виду, как это сделать в JavaScript или PHP, поэтому я добавлю оба.
Возможно, если у вас есть оба флажка, другой идентификатор решит вашу проблему. Затем вы можете узнать, какой флажок установлен, например:
getElementById("checkboxId").checked //either true or false
Если вы хотите узнать только, какой флажок был нажат, вы можете проверить его id:
checkboxObj.id
Где checkObj – это объект, который вы передаете в атрибуте onclick ваших флажков.
В PHP, когда установлен флажок, отправляется пара имен и значений. Если он не проверен, он не будет отображаться в данных, переданных на сервер. Проверяя, отображается ли значение для определенного флажка в данных, представленных на сервер, вы можете проверить, был ли он проверен. В вашем случае вы можете проверить, отображается ли значение в массиве «options».
Тем не менее, вы используете одно и то же значение («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