user151797
user151797

Reputation: 53

Insert into MySQL database with jQuery and PHP

I'm experiencing some kind of a problem here, I have no idea what's wrong with this code. I'm pretty sure it's client sided since I am not getting any PHP errors, but I may be wrong.

I'm trying to get a form, once submitted, to insert the information contained in a text field into a MySQL database via an AJAX request to a PHP file.

Here's where I'm at:

/* index.php */

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="scripts/ajax.js"></script>


//...


        <div class="success" id="success"></div>
        <div class="err" id="err"></div>


 <!--Create Form-->
 <form action="" method="post" name="create" id="createForm" onsubmit="createNew(document.create.create2.value); return false;">        
        <h5>Create New File</h5>
        <p><input name="create2" type="text" maxlength="32" /></p>
 <input type="submit" name="submit" value="Create" />
 </form>


/* ajax.js */

function createNew(name)
{
 $('#loading').css('visibility','visible');

  $.ajax({
  type: "POST",
  url: "../utilities/process.php",
  data: 'name='+name,
  datatype: "html",
  success: function(msg){

   if(parseInt(msg)!=5)
   {
    $('#success').html('Successfully added ' + name + ' into database.');
    $('#loading').css('visibility','hidden');
    alert('success');//testing purposes
   }
   else
   {
    $('#err').html('Failed to add ' + name + ' into database.');
    $('#loading').css('visibility','hidden');
    alert('fail');//testing purposes
   }
  }
      })
}


/* process.php */

<?
include('db_connect.php');

if($_POST['name'])
{
 $name = $_POST['name'];
 $name = mysql_escape_string($name);
 $query = "INSERT INTO tz_navbar (name) VALUES (".$name.")";
 $result = mysql_query("$query") or die ("5");

}
?>

Here's my problem: After I submit my form with something, it reports that is succeeds but nothing gets added to my database.

Thank you all in advance for taking your time to help me.

Upvotes: 0

Views: 13268

Answers (3)

iamnoob
iamnoob

Reputation: 11

You have $_POST['name'] , but in your form you have, input type = text name = "create" Which should be $_POST['create'] . That is why your $_POST['name'] does not have any value when it's passed.

Upvotes: 1

rgin
rgin

Reputation: 2311

Check your query.

$query = "INSERT INTO tz_navbar (name) VALUES ('$name');

Also, you could try testing process.php without javascript. Just so you could see the mysql error message. Use die() or something.

Upvotes: 0

Paul Spencer
Paul Spencer

Reputation: 1385

Looking at your query, I suspect you need it to be:

$query = "INSERT INTO tz_navbar (name) VALUES ('".$name."')";

If that doesn't fix it, you need to log the value of $_REQUEST

error_log(print_r($_REQUEST,true));

to ensure that you are getting the right values on the server side.

Upvotes: 4

Related Questions