Smide URL m. variabel i database vha Ajax
Hej, jeg prøver på at lave en side, hvor brugeren kan gemme siden som et bogmærke (internt på hjemmesiden). Det virker fint med URL'er som eks. "noget.php", "noget.php?id=3" - MEN IKKE - med "noget.php?id=3&variabel=5". - ved sidstnævnte smider den stadig kun "noget.php?id=3" i databasen.Problemet er, at den ikke kan få variabel 2 med over. Sikkert pga. GET - men er der en vej omkring det? Nedenfor er min kode for hhv.:
- Mit ajax
- Min form
- siden der smider i databasen
Mit Ajax er her:
<script>
/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* -------------------------- */
/* INSERT */
/* -------------------------- */
/* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */
var nocache = 0;
function insert() {
// Optional: Show a waiting message in the layer with ID login_response
document.getElementById('insert_response').innerHTML = "Vent venligst..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var bookmark_url = encodeURI(document.getElementById('bookmark_url').value);
var bookmark_title= encodeURI(document.getElementById('bookmark_title').value);
// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'add_bookmark.php?bookmark_url='+bookmark_url+'&bookmark_title='+bookmark_title+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
function insertReply() {
if(http.readyState == 4){
var response = http.responseText;
// else if login is ok show a message: "Site added+ site URL".
document.getElementById('insert_response').innerHTML = 'Bogmærke tilføjet: '+response;
}
}
</script>
Min form er her:
<?php
function curPageName() {
return substr($_SERVER["REQUEST_URI"],strrpos($_SERVER["REQUEST_URI"],"/")+1);
}
echo "The current page name is ".curPageName();
?>
<!-- Form: the action="java script:insert()"calls the javascript function "insert" into ajax_framework.js -->
<form action="java script:insert()" method="post" style=display:inline>
<input name="bookmark_url" type="hidden" id="bookmark_url" value="<?php echo "".curPageName().""; ?>">
<input name="bookmark_title" type="hidden" id="bookmark_title" value="test"/>
<input type="submit" name="Submit" value="Tilføj bogmærke"/>
</form>
<div id="insert_response" style=display:inline></div>
Min kode der smider i databasen er her:
<?php
if(isset($_GET['bookmark_title']) && isset($_GET['bookmark_url'])){
$bookmark_url= $_GET['bookmark_url'];
$bookmark_title= $_GET['bookmark_title'];
include("db_connect.php"); // DATABASE SETTINGS ETC.
$con = mysql_connect($host, $username, $password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($databasename, $con);
$sql="INSERT INTO ".$prefix."form_bookmarks (bookmark_title, bookmark_url)
VALUES
('$bookmark_title','$bookmark_url')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo $bookmark_url;
} else {
echo 'Error! Please fill all fields!';
}
?>
