Error sending data to php with ajax in wordpress

0

I have this form:

<select id="mudar_produto">
    <option></option> 
    <option value="#produto_1">Novo Produto Higiene</option> 
</select>
<section class="hide-section" id="produto_1"> 
<form class="form-validate" id="feedback_form">
    <div class="campo">
        <fieldset> 
            <h1>
                <legend>
                    <center>
                        <strong>Produtos de Higiene</strong>
            </center>
        </h1><br> 
        </div>
        <fieldset class="grupo">
    <div class="campo">
            <strong><label for="Nome do Produto">Nome do Produto</label></strong> 
            <input type="text" id="DescricaoProd" name="DescricaoProd" required="" style="width:350px">
        </div>
    <div class="campo"> 
        <strong><label for="Unidade">Unidade</label></strong> 
            <input type="text" id="DescricaoUnid" name="DescricaoUnid" style="width:160px" required="" size="120">
        </div>
        </fieldset>
        <button class="btn btn-success btn_contact" type="button">Registo</button>
</form>
</section> 

I have this ajax to send the data without refresh to the page and clean the inputs:

<script type="text/javascript"> 
$(".btn_contact").click(function () {

                $.ajax({
                    type: "POST",
                    url: "inserir",
                    data: $("#feedback_form").serialize(), // serializes the form's elements.
                    success: function (data)
                    {
                        if ($.trim(data) == 'true') {
                            $("#feedback_form").find('input').val(''); //clear text
                            $(".success_messages").removeClass('hide'); // success message
                        } else {
                            $(".error_message").removeClass('hide'); // error message
                        }
                    }
                });

            });
</script>

On the insert page I have the php code:

<?php
$servername = "xxx.xxx.x.xx"; 
$username = "xxxxxx"; 
$password = "xxxxxxxxx"; 
$dbname = "xxxxxxxx"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
$conn->set_charset('utf8');
$name = isset($_POST["DescricaoProd"]) ? $_POST["DescricaoProd"] : '';
$unid = isset($_POST["DescricaoUnid"]) ? $_POST["DescricaoUnid"] : '';
if (!empty($name)) && (!empty($unid)) { 

    echo 'true';
} else {
    echo 'false';
}    

$sql = "INSERT INTO ProdHigieneteste (DescricaoProd,DescricaoUnid) 
VALUES ('$name','$unid')";

if ($conn->query($sql) === TRUE);

$sql1 = "INSERT INTO StockHigieneteste (DescricaoProd,DescricaoUnid) 
VALUES ('$name','$unid')";

if ($conn->query($sql1) === TRUE);

    //Count total number of rows
    $rowCount = $query->num_rows;

$conn->close(); 

?>

But when I click the button to register I get the following error in the console:

  

POST link 500 (Internal   Server Error)

and does not insert into the database table.

    
asked by anonymous 23.05.2018 / 23:01

1 answer

1

From what I've noticed, you have an error in if in your PHP code, as below:

Error code

if (!empty($name)) && (!empty($unid)) { 

    echo 'true';
} else {
    echo 'false';
} 

Correct code:

if(!empty($name) && !empty($unid)){
        echo 'true';
} else {
        echo 'false';
}

A hint, whenever you see this 500 error, try opening your PHP error log file, there will be described the reason for the error to be occurring and you will solve the problem more easily, or enable the logs of errors on the browser screen itself while developing:

Enter the following parameters directly in the php file

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
    
24.05.2018 / 06:05