Почему PHP поменять значок плюса на пробел - PullRequest
0 голосов
/ 17 июня 2020

Когда я пытался ввести «iPhone 8+» в название продукта, он возвращал «iPhone 8» (с пробелом).

Я пробовал использовать urlencode () на моем php и он вернет «iPhone + 8 +»

Как заставить его вернуть «iPhone 8 +»

Это мой javascript с jquery кодом

  $("#submit-btn").click(function(){
      //get all value
      var product_name = $("#product_name").val();
      var stock = $("#product_stock").val();
      var price = $("#product_price").val();
      var product_desc = $("#product_desc").val();
      var product_img = $('#img-select').val().split('\\').pop();

      $.ajax({
       type: "POST",
       url: "add.php",
       data: `product_name=${product_name}&product_stock=${stock}&product_price=${price}&product_desc=${product_desc}&img=${product_img}`,
        success: function(data) {
          location.reload();
        }
      });      
  });

Это мой php код

<?php

require 'connect.php';

$nama = urlencode($_POST["product_name"]);
$stock = $_POST["product_stock"];
$price = $_POST["product_price"];
$desc = $_POST["product_desc"];
$img = $_POST["img"];

mysqli_query($conn, "INSERT INTO product_list(id,product_name,stock,price,product_desc,sold,img) VALUES('','$nama','$stock','$price','$desc','','$img')");

?>

1 Ответ

0 голосов
/ 17 июня 2020

Вы должны использовать encodeURIComponent для кодирования этой строки:

data: `product_name=${encodeURIComponent(product_name)}&product_stock=${encodeURIComponent(stock)}&product_price=${encodeURIComponent(price)}&product_desc=${encodeURIComponent(product_desc)}&img=${encodeURIComponent(product_img)}`,

infact encodeURIComponent('IPhone 8+') output IPhone%208%2B и поэтому он закодировал +, и поэтому больше не распознается как вашим сервером Или, что еще лучше, используйте POST метод

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