Hella ребят, я немного задачи примерно наполовину сделано ... это касается CheckBox массивов в PHP коде ...предотвращения массив галочки флажков из переиздаются в качестве флажков флажков
после того, как я сделать выбор из список флажков, и я нажимаю кнопку «Отправить», я получаю флажки, отмеченные галочкой, но я также получаю весь список флажков, напечатанных снова, что является проблемой, потому что я не хочу, чтобы флажки, которые я отметил, отображались снова, но они отображаются снова, но на этот раз в виде непроверенной коробки.
Я попытался использовать метод array_diff, но вместо этого я предупреждаю, что аргумент Argument является строкой, а не массивом ... так что я действительно смущен ... Я загрузил скриншоты флажков объяснить это лучше -
[IMG] http://i61.tinypic.com/eqtmix.png[/IMG] - флажок, что я галочкой
[IMG] http://i62.tinypic.com/e5o16p.png[/IMG] - после того, как я галочкой флажок, как вы можете видеть, мои выборы будут напечатаны снова - «Motor Binding И Connection "и" Repair Sensors ", но на этот раз они не установлены.
, когда я использую array_diff я получаю следующее сообщение об ошибке:
Предупреждение: array_diff(): Аргумент # 1 не является массивом в C: \ xampp1 \ HTDOCS \ rajib1 \ Rajib \ php_checkbox1.php на линии 50
вот мой код без метода array_diff используется:
<?php
include('dbcategory.php');
error_reporting(0);
error_reporting(E_ERROR | E_PARSE);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
?>
<!DOCTYPE html>
<html>
<head>
<title>PHP: Get Values of Multiple Checked Checkboxes</title>
<link rel="stylesheet" href="css/php_checkbox.css" />
</head>
<body>
<td valign="top">
<?php
$list = "SELECT * FROM skillsset WHERE category='Engineering' ORDER BY skills ASC";
$listAHI = $dbs ->prepare($list);
$listAHI -> execute();
if(!isset($_POST['submit'])){
while($row = $listAHI ->fetch(PDO::FETCH_ASSOC))
{
$skills = $row["skills"];
echo "
<form action='' method='post'>
<input type='checkbox' name='skills[]' value='$skills'> $skills<br>
";
}
echo"<input type='submit' name='submit' Value='Submit'/></form>";
}
else {
if(isset($_POST['submit'])){
if(!empty($_POST['skills'])) {
foreach($_POST['skills'] as $skills1) {
echo "<p><form action='' method='post'><input type='checkbox' name='skills[]' value='$skills1' checked>".$skills1 ."</p>";
}
while($row = $listAHI ->fetch(PDO::FETCH_ASSOC)){
$skills = $row["skills"];
//$result=array_diff($skills,$skills1);
//print_r($result);
echo "
<form action='' method='post'>
<input type='checkbox' name='skills[]' value='$skills'> $skills<br>
";
}
}
}
else{
echo "<b>Please Select At least One Option.</b><input type='submit' name='submit' Value='Submit'/>";
}
}
?>
</td>
</form>
</div>
</div>
</body>
</html>
Если добавить следующие строки кода - // $ Result = array_diff ($ навыки, $ skills1); // print_r ($ result); которые комментируются, то я получаю следующее сообщение об ошибке:
Предупреждение: array_diff(): Аргумент # 1 не является массивом в C: \ xampp1 \ HTDOCS \ rajib1 \ Rajib \ php_checkbox1.php на линии 50
вот код таблицы, из которого я повторил данные, чтобы распечатать списки с помощью флажков - пожалуйста, назовите файл skillsset.sql, если вы решите скопировать и вставить код ниже и ввести его в mysql/apache (или любой другой) сервер - Thnx
-- phpMyAdmin SQL Dump
-- version 4.1.6
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Feb 04, 2015 at 04:01 AM
-- Server version: 5.6.16
-- PHP Version: 5.5.9
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `quietservices`
--
-- --------------------------------------------------------
--
-- Table structure for table `skillsset`
--
CREATE TABLE IF NOT EXISTS `skillsset` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(250) NOT NULL,
`skills` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
--
-- Dumping data for table `skillsset`
--
INSERT INTO `skillsset` (`id`, `category`, `skills`) VALUES
(11, 'Information', 'PHP'),
(13, 'Information', 'C++'),
(14, 'Information', 'C#'),
(15, 'Information', 'Javascript'),
(17, 'Information', 'AJAX'),
(18, 'Information', 'Java'),
(19, 'Information', 'Adobe Photoshop'),
(21, 'Information', 'Adobe Premiere Pro'),
(22, 'Information', 'Final Cut'),
(28, 'Engineering', 'Power Factor Improvement (PFI)'),
(29, 'Engineering', 'Motor Binding & Connection'),
(31, 'Engineering', 'Transformer'),
(34, 'Engineering', 'AutoCAD'),
(35, 'Information', 'AutoCAD'),
(36, 'Engineering', 'Switchgear Panels'),
(37, 'Engineering', 'General Wiring'),
(38, 'Engineering', 'Repair Sensors'),
(39, 'Engineering', 'Install & Maintain Substation');
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
пожалуйста, дайте мне знать, как я могу получить проверенные/тикали коробки с печатью Агаев n в виде отмеченных/отмеченных коробок, когда полный список извлекается и печатается ... thnx mill!
Я рад, что мой ответ сработал, помните, что вы можете проголосовать или отметить его как принятый ответ, чтобы улучшить репутацию пользователя. – andreszs