<div class="controlPanel">
<script>
$(document).ready(function(){
$("form").on("submit", function (event) {
$.ajax({
type: 'POST',
url: 'input.php',
data: $(this).serialize(),
success: function (data) {
$(".error").html(data);
}
});
event.preventDefault();
//console.log($(this).serialize());
});
});
</script>
<h4>Chutes audit</h4>
<script>
$(function(){
$('.chuteAudit :input').on("invalid blur", function(e) {
var ok = this.validity.valid
var index=$(this).index()-1
$(this).closest(".chuteAudit").find(".error").eq(index).text( ok?"":"Enter a number")
});
$("form").submit(function(){
$.post(this.action,$(this).serialize(),function(response){
$(".error").empty()
console.log(response)
var hasErrors=false
$.each(response,function(name,error){
var field= $(document.getElementsByName(name)),
errorField = field.closest(".chuteAudit").find(".error").eq(field.index()-1)
errorField.text(error)
// console.log(name,field,error)
hasErrors=hasErrors||error
})
},"JSON")
return false
})
})
</script>
<form name="auditform" action="input.php" method="POST">
<label class="chutesTitle">Count </label>
<label class="chutesTitle">Error</label>
<?php
try{
$db = new PDO("mysql:host=localhost;dbname=amazon", 'root', '');
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo $e->getMessage();
die();
}
$names = $db->prepare("
SELECT sort
FROM sorts WHERE section = 'chutes' AND active ='yes'
");
if($names->execute() == false) {
die("<pre>Query failed:\n".print_r($names->errorInfo(),1)."</pre>");
}
$names = $names->fetchAll(PDO::FETCH_ASSOC);
foreach($names as $name):
?>
<div class="chuteAudit">
<div>
<label for="x1"><?php echo $name['sort']; ?></label>
<input type="hidden" name="sort[]" value="<?php echo $name['sort']; ?>" >
<input type="number" name="count[]" required min="0">
<input type="number" name="error[]" required min="0">
</div>
<div class="errors">
<span></span>
<span class="error"></span>
<span class="error"></span>
</div>
</div>
<?php endforeach;?>
<input type="submit" value="Submit" name="submit">
</form>
<?php
<?php
try{
$db = new PDO("mysql:host=localhost;dbname=amazon", 'root', '');
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo $e->getMessage();
die();
}
$sort = $_POST['sort'];
$count = $_POST['count'];
$error = $_POST['error'];
$rows = [];
if (!is_numeric($count && $error))
{
echo "Enter a number";
}
else if (empty($count && $error))
{
echo "Enter a number";
}
else
{
$sql = 'INSERT INTO `audits` (`sort`, `countAudit`, `error`, `timeentered`) VALUES';
$values = " (?,?,?, NOW()),";
foreach($sort as $i=>$value)
{
$rows[] = [$sort[$i],$count[$i],$error[$i]];
}
foreach($rows as $row)
{
$sql = $sql . $values;
}
$sql = substr_replace($sql, "", -1);
$stmt = $db->prepare($sql);
$data = call_user_func_array('array_merge', $rows);
$stmt->execute($data);
}
So this seems to work fine, I really should make one connection but other than that it's ok I guess