2015-04-15 2 views
-2

Я быстро сделал страницу, которая показывает текущие элементы в базе данных. Я создал функцию для настройки уровней запасов, но теперь я пытаюсь добавить функцию для удаления элементов. По какой-то причине все это снижает уровень запасов до 0, но не удаляет элемент из базы данных.Почему скрипт php не удаляет таблицу?

Также было бы возможно/лучше поставить код, который генерирует таблицу в другой файл и загружать ее здесь? Поскольку это необходимо для автоматического обновления при запуске функции обновления или удаления акций.

AJAX/HTML КОДА

<!DOCTYPE html> 
<html> 
<head> 
<script  src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"> </script> 
<script> 

$(document).ready(function(){ 
$('#dataSubmit').on('submit',function(e){ 
    $.ajax({ 
     url:'files/update.php', 
     data:$(dataSubmit).serialize(), 
     type:'POST', 
     success:function(data){ 
      console.log(data); 
      if(data != "Error") { 
       $("#data").html(data).show().fadeOut(9000); 
      } 
      else { 
       $("#data").html(data).show().fadeOut(9000); 
      } 
     }, 
     error:function(data){ 
      $("#error").show().fadeOut(5000); 
     } 
    }); 
    e.preventDefault(); 
    document.getElementById("dataSubmit").reset(); 
}); 
}); 
$(document).ready(function(){ 
$('#deleteItem').on('dsubmit',function(e){ 
    $.ajax({ 
     url:'files/delete.php', 
     data:$(deleteItem).serialize(), 
     type:'POST', 
     success:function(data){ 
      console.log(data); 
      if(data != "Error") { 
        $("#datad").html(data).show().fadeOut(9000); 
       } 
       else { 
        $("#datad").html(data).show().fadeOut(9000); 
       } 
     }, 
     error:function(data){ 
      $("#error").show().fadeOut(5000); 
     } 
    }); 
    e.preventDefault(); 
    document.getElementById("deleteItem").reset(); 
}); 
}); 
</script> 

</head> 
<body> 
<h2> Update Stock Levels </h2> 
<form name="dataSubmit" id="dataSubmit" action=""> 
Product ID: <input type="number" name="Product_ID" value=""><br> 
New Stock Amount: <input type="text" name="Product_Stock" value=""><br> 
<input type="submit" name="submit" > 
<div id="data"></div> 

<h2> Delete Items </h2> 
<form name="deleteItem" id="deleteItem" action=""> 
Product ID: <input type="number" name="Product_ID" value=""><br> 
<input type="submit" name="dsubmit" > 
<div id="datad"></div> 





<?php 
echo "<table style='border: solid 1px black;'>"; 
echo "<tr><th>Id</th><th>Product Name</th><th>Product Description</th> <th>Product Price</th><th>Product Stock Amount</th></tr>"; 

class TableRows extends RecursiveIteratorIterator { 
function __construct($it) { 
    parent::__construct($it, self::LEAVES_ONLY); 
    } 

function current() { 
    return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>"; 
} 

function beginChildren() { 
    echo "<tr>"; 
} 

function endChildren() { 
    echo "</tr>" . "\n"; 
} 
} 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "cms"; 

try { 
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,   $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $conn->prepare("SELECT Product_ID, Product_Name, Product_Desc, Product_Price, Product_Stock FROM Products"); 
$stmt->execute(); 

// set the resulting array to associative 
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as  $k=>$v) { 
    echo $v; 
} 
} 
catch(PDOException $e) { 
echo "Error: " . $e->getMessage(); 
} 
$conn = null; 
echo "</table>"; 
?> 
</body> 
</html> 

PHP КОД

<?php 

$dsn = 'mysql:host=localhost;dbname=cms'; 
$user = 'root'; 
$password = ''; 
try { 
$pdo = new PDO($dsn, $user, $password); 
$pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch (PDOException $e) { 
echo 'Connection failed: ' . $e->getMessage(); 
} 

$sql = "DELETE FROM Products WHERE Product_ID = :Product_ID"; 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(':Product_ID', $_POST['Product_ID'], PDO::PARAM_INT); 
$stmt->execute(); 



?> 
+0

Слишком много кода. Вам нужно сделать больше проблем и устранить их, по крайней мере, для кода php или javascript. YUou've выложил столько кода, что подразумевается, что вы не пытались отлаживать это самостоятельно. –

+0

Я попытался отладить его. Я знаю, откуда эта проблема. Когда я удаляю форму удаления, она работает, но я не могу понять, почему, когда все переменные являются отдельными. –

+0

И где объявлены переменные 'dataSubmit' и' dataSubmit'? 'data: $ (dataSubmit) .serialize(),' и 'data: $ (deleteItem) .serialize(),' Что такое событие 'dsubmit'? '$ ('# deleteItem'). on ('dsubmit', function (e) {' – epascarello

ответ

0

Вы не являются обязательными к отправке события на операции удаления, у вас есть опечатка

$('#deleteItem').on('dsubmit',function(e){ 
        ^

Форма просто представляет.

+0

Я запутался в том, что он работает для всех моих других функций, 1. Что мне нужно изменить? –

+0

dsubmit! == submit – epascarello

+0

Спасибо, теперь это работает –

Смежные вопросы