I've been trying to put up my form but I keep getting stuck. I got it to work with jquery disabled. But if I turn Jquery on it does not send anything. (Without errors in my element inspection)
I've been on it for a while now and I tried different solutions (a few from different topics here on Stack overflow) but I keep getting to the same point. It might be something on the server side but I keep thinking that if that would be the case it shouldn't work at all. Does anyone might have an idea?
The link: http://www.volunteeringnews.com/osf.php
The codes:
Client side: osf.php
<?php include("osb.php");?>
<link href="css/styles.css" rel="stylesheet">
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type = "text/javascript">
$(function(){
$('#submit').click(function(){
$('#container').append('<img src = "img/ajax/ajax-loader.gif" alt="Currently loading" id = "loading" />');
var name=$("#name").val();
var continent=$("#continent").val();
var country=$("#country").val();
var website=$("#website").val();
var email=$("#email").val();
var nameorg=$("#nameorg").val();
var category=$("#category").val();
var price=$("#price").val();
var currency=$("#currency").val();
var description=$("#description").val();
var wanted=$("#wanted").val();
var expectation=$("#expectation").val();
var extra=$("#extra").val();
$.ajax({
url: 'osb.php',
type: 'POST',
data: 'name =' + name + '&continent=' + continent + '&country=' + country + '&website=' + website + '&email=' + email + '&nameorg=' + nameorg + '&category=' + category + '&price=' + price + '¤cy=' + currency + '&description=' + description + '&wanted=' + wanted + '&expectation=' + expectation + '&extra=' + extra,
success: function(result){
$('#response').remove();
$('#container').append('<p id = "response">' + result + '</p>');
$('#loading').fadeOut(500, function(){
$(this).remove();
});
}
});
return false;
});
});
</script>
<!--we have our html form here where user information will be entered-->
<form action='osb.php' method='post' border='0'>
<div id = "container"> <br>
<label>Name: </label> <input type='text' id="name" name='name' /><br> <br>
<label>Continent: </label> <select id="continent" name="continent"> <option>Africa</option><option>America</option><option>Asia</option> <option>Australia</option><option>Europe</option></select><br><br>
<label>Country: </label> <input type='text' id="country" name='country' /><br><br>
<label>Website: </label> <input type='text' id="website" name='website' /><br><br>
<label>E-mail: </label> <input type='text' id="email" name='email' /><br><br><br>
<label>Organisation: </label> <input type='text' id="nameorg" name='nameorg' /><br><br>
<label>Category: </label> <input type='text' id="category" name='category' /><br><br>
<label>Price per week: </label> <input type='text' id="price" name='price' /><br><br>
<label>Currency: </label> <select id ="currency" name="currency" > <option> EUR </option> <option> DOL </option> <option> GBP </option></select><br><br>
<label>Description: </label> <textarea id="description" rows="5" cols="40" placeholder="Describe what kind of volunteer is welcome" name='description'/></textarea><br><br>
<label>Wanted: </label> <textarea id="wanted" rows="5" cols="40" placeholder="Describe what kind of volunteer is welcome" name='wanted'/></textarea><br><br>
<label>Expectation: </label> <textarea id="expectation" rows="5" cols="40" placeholder="Describe what a volunteer can expect" name='expectation'/></textarea><br><br>
<label>Extra: </label> <textarea id="extra" rows="5" cols="40" placeholder="Describe what a volunteer can expect" name='extra'/></textarea><br><br>
<input type='hidden' name='action' value='create' />
<input type='submit' value='Submit' id="submit" value = "send feedBack"/>
<input type="reset" value="Reset" class="reset-org">
<a href='index.php'>Back to index</a>
The server side: osb.php
<?php
//set connection variables
$host = "";
$username = "";
$password = "";
$db_name = ""; //database name
//connect to mysql server
$mysqli = new mysqli($host, $username, $password, $db_name);
//check if any connection error was encountered
if(mysqli_connect_errno()) {
echo "Error: Could not connect to database.";
exit;
}
$action = isset($_POST['action']) ? $_POST['action'] : "";
if($action=='create'){ //the the user submitted the form
//include database connection
include 'mysqli.php';
//our insert query query
//$mysqli->real_escape_string() function helps us prevent attacks such as SQL injection
$query = "insert into organisation
set
name = '".$mysqli->real_escape_string($_POST['name'])."',
continent = '".$mysqli->real_escape_string($_POST['continent'])."',
country = '".$mysqli->real_escape_string($_POST['country'])."',
website = '".$mysqli->real_escape_string($_POST['website'])."',
email = '".$mysqli->real_escape_string($_POST['email'])."',
nameorg = '".$mysqli->real_escape_string($_POST['nameorg'])."',
category = '".$mysqli->real_escape_string($_POST['category'])."',
price = '".$mysqli->real_escape_string($_POST['price'])."',
currency = '".$mysqli->real_escape_string($_POST['currency'])."',
description = '".$mysqli->real_escape_string($_POST['description'])."',
wanted = '".$mysqli->real_escape_string($_POST['wanted'])."',
expectation = '".$mysqli->real_escape_string($_POST['expectation'])."',
extra = '".$mysqli->real_escape_string($_POST['extra'])."'";
//execute the query
if( $mysqli ->query($query) ) {
//if saving success
echo "User was created.";
}else{
//if unable to create new record
echo "Database Error: Unable to create record.";
}
//close database connection
$mysqli->close();
}
?>
Thank you very much!!
$. ajax() method allows you to send asynchronous http requests to submit or retrieve data from the server without reloading the whole page. $. ajax() can be used to send http GET, POST, PUT, DELETE etc.
To implement a database with jQuery you would need a server backend (usually a PHP script that accepts input and stores it to the database). You can call this php script from your site with jQuery through it's AJAX functionality.
Actually, the answer is simply NO. JQuery can't make a connection to a MySQL server - you'll need a serverside script.
Try this
Here is the edited html
<form action='osb.php' method='post' border='0' id="form1">
<div id = "container"> <br>
<label>Name: </label> <input type='text' id="name" name='name' /><br> <br>
<label>Continent: </label> <select id="continent" name="continent"> <option>Africa</option><option>America</option><option>Asia</option> <option>Australia</option><option>Europe</option></select><br><br>
<label>Country: </label> <input type='text' id="country" name='country' /><br><br>
<label>Website: </label> <input type='text' id="website" name='website' /><br><br>
<label>E-mail: </label> <input type='text' id="email" name='email' /><br><br><br>
<label>Organisation: </label> <input type='text' id="nameorg" name='nameorg' /><br><br>
<label>Category: </label> <input type='text' id="category" name='category' /><br><br>
<label>Price per week: </label> <input type='text' id="price" name='price' /><br><br>
<label>Currency: </label> <select id ="currency" name="currency" > <option> EUR </option> <option> DOL </option> <option> GBP </option></select><br><br>
<label>Description: </label> <textarea id="description" rows="5" cols="40" placeholder="Describe what kind of volunteer is welcome" name='description'/></textarea><br><br>
<label>Wanted: </label> <textarea id="wanted" rows="5" cols="40" placeholder="Describe what kind of volunteer is welcome" name='wanted'/></textarea><br><br>
<label>Expectation: </label> <textarea id="expectation" rows="5" cols="40" placeholder="Describe what a volunteer can expect" name='expectation'/></textarea><br><br>
<label>Extra: </label> <textarea id="extra" rows="5" cols="40" placeholder="Describe what a volunteer can expect" name='extra'/></textarea><br><br>
<input type='hidden' name='action' value='create' />
<input type='button' value='Submit' id="submit" />
<input type="reset" value="Reset" class="reset-org">
<a href='index.php'>Back to index</a>
</form>
use .serialize()
, it will automatically take all the form data
$(function(){
$('#submit').click(function(){
$('#container').append('<img src = "img/ajax/ajax-loader.gif" alt="Currently loading" id = "loading" />');
$.ajax({
url: 'osb.php',
type: 'POST',
data: $('#form1').serialize(),
success: function(result){
$('#response').remove();
$('#container').append('<p id = "response">' + result + '</p>');
$('#loading').fadeOut(500);
}
});
});
});
and in your php page add this
<?php
$data=$_POST['serialize'];
$name=$data['name']; //access data like this
?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With