
wadesmart
-
Posts
10 -
Joined
-
Last visited
Posts posted by wadesmart
-
-
Ive been using what Ive learned this book for a long time now but Im stumped on something.
I have a situation where I can not use a drop down list so I was going to use a links instead.
link: href="index.php?p=performances?performance=Life_After_50"
Im stumped as how to handle this code.
In the index.php page I see the code:
//Validate what page to show
if(isset($_GET['p'])){
$p = $_GET['p'];
} else if( isset($_POST['p'])) { //form
$p = $_POST['p'];
} else {
$p = NULL;
}
But how does the page get redirected back to the performances.inc.php to access the performance variable data Life After 50?
-
FOUND IT!!!
header("Content-Type=text/xml"); should be header("Content-Type:text/xml");
Changed that - its all fine.
OMGOSH that is crazy that one little thing like a = instead of a : can do that.
Ok.. thanks for the help - moving on with the book
-
Ok.. I noticed it only did that with the php tag at the top and thought maybe the page logic
inserted the dashes itself but the above test says it didnt.
Anyway, I dont know why that showed up but its not in my actual code.
-
Im testing something .....
<?php phpinfo(); ?>
-
Im just looked at that.... the <!-- isnt in my code.
Its only in the code I posted here.
This is what I have
<?php #add_employee_xml.php
header("Content-Type=text/xml");
echo '<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<response>
';
-
Hartley, Im working with the code right out of the book that this forum is named after:
//add_employee.js window.onload = init; function init(){ var ajax = getXMLHttpRequestObject(); if(ajax){ if(document.getElementById('results')){ document.getElementById('emp_form').onsubmit = function(){ ajax.open('post', 'add_employee_xml.php'); ajax.onreadystatechange = function() { handleResponse(ajax); } var fields = ['first_name', 'last_name', 'email', 'department_id', 'phone_ext']; for(var i = 0; i < fields.length; i++){ fields[i] = fields[i] + '=' + encodeURIComponent(document.getElementById(fields[i]).value); } var values = fields.join('&'); //alert(values); ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajax.send(values); return false; } } } } function handleResponse(ajax){ if(ajax.readyState == 4){ if((ajax.status == 200) || (ajax.status == 304)) { var results = document.getElementById('results'); document.getElementById('first_name_label').className = 'title'; document.getElementById('last_name_label').className = 'title'; document.getElementById('email_label').className = 'title'; document.getElementById('department_id_label').className = 'title'; document.getElementById('phone_ext_label').className = 'title'; var data = ajax.responseXML; alert(data); var message = data.getElementsByTagName('result'); var errors = data.getElementsByTagName('error'); var temp = false; for(var i=0; i < errors.length; i++){ temp = errors[i].firstChild.nodeValue; document.getElementById(temp + '_label').className = 'error'; } results.innerHTML = message[0].firstChild.nodeValue; results.style.display = 'block'; } else { document.getElementById('emp_form').submit(); } } }
and then the page its calling:
<!--?php #add_employee_xml.php header("Content-Type=text/xml"); echo '<?xml version="1.0" encoding="utf-8" standalone="yes" ?--> <response> '; require_once('mysql.inc.php'); $error = false; if(!empty($_POST['first_name'])){ $fn = mysql_real_escape_string($_POST['first_name'], $dbc); } else { $error = true; echo '<error>first_name</error> '; } if(!empty($_POST['last_name'])){ $ln = mysql_real_escape_string($_POST['last_name'], $dbc); } else { $error = true; echo '<error>last_name</error> '; } if(!empty($POST['email'])){ $e = mysql_real_escape_string($_POST['email'], $dbc); } else { $error = true; echo '<error>email</error> '; } if(isset($_POST['department_id']) && is_numeric($_POST['department_id']) && ($_POST['department_id'] > 0)){ $did = (int) $_POST['department_id']; } else { $error = true; echo '<error>department_id</error> '; } if(isset($_POST['phone_ext']) && is_numeric($_POST['phone_ext']) && ($_POST['phone_ext'] > 0)) { $ext = (int) $_POST['phone_ext']; } else { $error = true; echo '<error>phone_ext</error> '; } // no errors if(!$error){ $query = "INSERT INTO employees (department_id, first_name, last_name, email, phone_ext) VALUES (NULL, $did, '$fn', '$ln', '$e', $ext)"; $result = mysql_query($query, $dbc); if(mysql_affected_rows($dbc) == 1){ echo '<result>The employee has been added.</result> '; } else { echo '<result>The employee could not be added due to a system error.</result> '; } } else { echo '<result>Please correct problems with the highlighted field(s) below.</result> '; } mysql_close($dbc); echo '</response> '; ?>
I went back through and put the '; on a new line just like in the book thinking maybe it had to be that way to not mess up the xml.
-
Ok. Thanks for you response Larry.
After looking through the book and over the code, I dont understand how to do that yet.
Ill just put this book away until I understand js better.
-
Do you mean with this:
if(ajax.readyState == 4){
if((ajax.status == 200) || (ajax.status == 304)) {
which is inside the function handleResponse(ajax).
-
var errors = data.getElementsByTagName('error');
When I run the page my Firefox error console says:
data is null
add_employee.js line 44 -> which is the above line.
I checked my code against that downloaded from
the site and found no errors so I ran the code
from the site and had the same issue.
Ive been going over the code to see if I understand
what is happening but I just dont understand js
enough and what could be causing the errors.
wade
Using $_Get In Chapter 8 - Creating Web Applications
in PHP for the World Wide Web: Visual QuickStart Guide (2nd Edition)
Posted
I had just found that missing & right before you posted.
It never fails. I can look for hours and as soon as I ask for help - I see the problem.
But, it still wasnt working so it def helps to spell things correctly HAA
Thanks Larry.
Much appreciated - as usual
Wade