Avatar billede Slettet bruger
09. februar 2011 - 13:06 Der er 1 løsning

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!';
}
?>
Avatar billede Slettet bruger
09. februar 2011 - 14:56 #1
Skidt pyt - jeg fandt en anden løsning. Beklager ulejligheden - lukker og slukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester