AJAX не может ввести все значения из формы.Вставить QUERY - PullRequest
0 голосов
/ 04 октября 2018

Что не так в моих кодах?Я не думаю, что проблема заключается в серверной части, я не могу найти логическую ошибку здесь.Он говорит успешно, но не вставляет значения из формы.Я новичок в использовании AJAX.Пожалуйста, поймите.

 <div class="modal fade" id="AddProduct" tabindex="-1" role="dialog" aria- 
 labelledby="exampleModalCenterTitle" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
      <div class="modal-content">
        <div class="modal-header">
           <h5 class="modal-title" id="exampleModalLongTitle">Add 
Products</h5>
          <button type="button" class="close" data-dismiss="modal" aria- 
label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <form>
        <div class="modal-body">
             <div class="form-group">
              <label for="exampleInputEmail1">Product Name</label>
              <input type="text" class="form-control" id="name"  
 name="product_name" aria-describedby="emailHelp" placeholder="Enter email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>
             <div class="form-group">
              <label for="exampleInputEmail1">Product Description</label>
              <input type="text" class="form-control" 
 id="product_description"  name="description" aria- 
 describedby="emailHelp" placeholder="Enter email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>
             <div class="form-group">
              <label for="exampleInputEmail1">Product Price</label>
              <input type="text" class="form-control" id="price"  
 name="product_price" aria-describedby="emailHelp" placeholder="Enter 
email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>
            <div class="form-group">
              <label for="exampleInputEmail1">Product Discount</label>
              <input type="text" class="form-control" id="discount"  
name="product_discount" aria-describedby="emailHelp" placeholder="Enter 
email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>
              <div class="form-group">
              <label for="exampleInputEmail1">Product Image</label>
              <input type="text" class="form-control" id="image"  
name="product_image" aria-describedby="emailHelp" placeholder="Enter email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>

            <div class="form-group">
              <label for="exampleInputEmail1">Product Quantity</label>
              <input type="text" class="form-control" id="quantity"  
name="product_quantity" aria-describedby="emailHelp" placeholder="Enter 
email">
              <small id="namenotif" class="form-text text-muted"></small>
            </div>
            <div class="form-group">
              <label for="exampleSelect1">Select Product Cat</label>
              <select class="form-control" id="category" name 
 ="product_category">
                <option value="Regular">Regular</option>
                <option value="Sale">Sales</option>
                <option value="FeaturedProduct">Featured Products</option>

              </select>
            </div>

        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data- 
dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary" id="saveproduct" 
name="save">Save Product</button>
        </div>

      </div>
    </form>
    </div>
  </div>
</div>

<script> 
$(document).ready(function() {
  $(document).on("click","#saveproduct",function(){
   var name = $("#_name").val();
   var description = $("#description").val();
   var price = $("#price").val();
   var discount = $("#discount").val();
   var image = $("#image").val();
   var quantity = $("#quantity").val();
   var category = $("#category").val();
   $.ajax({
    url:"addproduct.php",
    type:"POST",
    data:{
          name:name,
          description:description,
          price:price,
          discount:discount,
          image:image,
          quantity:quantity,
          category:category
          }, 
    success:function(data){
    alert("Successful");
       }
     });
  });
});
</script>



require_once('conn.php');
if(!empty($_POST) && $_SERVER['REQUEST_METHOD']=='POST'){
$name = $_POST['name'];
$description = $_POST['description'];
$price = $_POST['price'];
$discount = $_POST['discount'];
$image = $_POST['image'];
$quantity = $_POST['quantity'];
$category = $_POST['category'];
$query ="INSERT into products(
                         name,
                         description,
                         price,
                         discount,
                         image,
                         quantity,
                         category
                         )values(
                         '$name',
                         '$description',
                         '$price',
                         '$discount',
                         '$image',
                         '$quantity',
                         '$category'
                          )";
$sql = mysqli_query($con,$query);
}

Этот код выше является php-кодом для моего запроса на вставку, если вы можете заметить, я просто поместил изображение продукта в переменную, потому что я только проверяю, как вставить, используя ajax.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Возможно, вы захотите учесть следующее в вашем PHP:

$sql = "INSERT INTO products(
  product_name,
  product_description,
  product_price,
  product_discount,
  product_image,
  product_quantity,
  product_category
) values (
  '$product_name',
  '$product_description',
  '$product_price',
  '$product_discount',
  '$product_image',
  '$product_quantity',
  '$product_category'
)";

if (mysqli_query($connection, $sql)) {
  echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}

mysqli_close($connection);

Это вернет данные обратно в ваш AJAX-скрипт.Затем вы можете сделать:

$.ajax({
  url:"addproduct.php",
  type:"POST",
  data: {
    product_name: product_name,
    product_description: product_description,
    product_price: product_price,
    product_discount: product_discount,
    product_image: product_image,
    product_quantity: product_quantity,
    product_category: product_category
  }, 
  success:function(data){
    console.log("AJAX Success:", data);
  }
});

Таким образом, вы можете увидеть, что PHP смог подключиться и обновить базу данных, или если он обнаружил ошибку, у вас есть доступ к этим данным об ошибке.

ВЧто касается вашего кода SQL, он также может быть использован, пожалуйста, просмотрите: http://php.net/manual/en/security.database.sql-injection.php

0 голосов
/ 04 октября 2018

сначала проверьте, что соединение PHP mysql успешно установлено.попробуйте использовать операторы обработки ошибок "TRY / CATCH"

см. здесь http://php.net/manual/en/language.exceptions.php для отладки кода с блоками try / catch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...