Reputation: 19
I am attempting to learn AJAX, but it is not going so well. On my site users can request training. Once the request is submitted instructors should be able to manage the request from this page. However when trying to "claim" a request, the AJAX does not function correctly, with no errors.
PHP/HTML/Javascript/AJAX
<table class="sidebar" style="width:50%;">
<tr><th>My Open Requests</th></tr>
<div id="myopen">
<?php
if(!empty($myopen)){
foreach($myopen as $request){
$date = date('F d Y - gA', $request['submitted']);
echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.'</td></tr>';
}
}
else{
echo '<tr><td>NONE</td></tr>';
}
?>
</div>
</table>
<table class="sidebar" style="width:50%;">
<tr><th>My Closed Requests</th></tr>
<?php
if(!empty($myclosed)){
foreach($myclosed as $request){
$date = date('F d Y - gA', $request['submitted']);
echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.'</td></tr>';
}
}
else{
echo '<tr><td>NONE</td></tr>';
}
?>
</table>
<table class="sidebar" style="width:50%;">
<tr><th>Unclaimed Requests</th></tr>
<div id="unclaimed">
<?php
if(!empty($unclaimed)){
foreach($unclaimed as $request){
$date = date('F d Y - gA', $request['submitted']);
$id = $request['id'];
$name = "'".$this->registry->getData('firstname').' '.$this->registry->getData('lastname')."'";
echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.' <a href="" onclick="claim('.$id.','.$name.')">Claim</a></td></tr>';
}
}
else{
echo '<tr><td>NONE :)</td></tr>';
}
?>
</div>
</table>
<table class="sidebar" style="width:50%;">
<tr><th>Request Log</th></tr>
<?php
if(!empty($claimed)){
foreach($claimed as $request){
echo '<tr><td>'.print_r($request).'</td></tr>';
}
}
else{
echo '<tr><td>NONE</td></tr>';
}
?>
</table>
<script>
function claim(id, name){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myopen").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("POST", "/lib/AJAX/trainingRequestManage.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("id="+id+"&name="+name);
}
</script>
trainingRequestManage.php
<?php
$id = $_POST["id"];
$id = $_POST["name"];
include('http://www.ivaoxa.org/config/db.php');
$sql = "UPDATE trainingRequests SET trainer='".$name."' WHERE id=".$id;
// Prepare statement
$stmt = $db->prepare($sql);
// execute the query
$stmt->execute();
echo 'test';
db.php
<?php
$db = new PDO('mysql:host=localhost;dbname=xx;charset=utf8', 'xx', 'xx');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Upvotes: 0
Views: 227
Reputation: 491
Unless http://www.ivaoxa.org/config/db.php
is served as a plain file the following line is never going to work:
include('http://www.ivaoxa.org/config/db.php');
More info: http://php.net/manual/en/function.include.php
Upvotes: 2