PDA

View Full Version : Ajax Only Submits One Forum.


Goins
03-21-2008, 12:00 AM
Help.

So Far My Script Works Perfect. It is suppose to be a multihost image upload. and my script allows it to add keywords. Alright But Theirs One Problem if more than one image is uploaded the code just repated it self and shows the both images.. So right now if i have

<form action="javascript:insert()" method="post">
<input name="keyword" type="text" id="keyword" value=""/>
<input name="name" type="text" id="name" value="<# FILENAME #>"/>
<input type="submit" name="Submit" value="Insert"/>
<div id="insert_response"></div>

It works fine. But if i upload 2 images

<form action="javascript:insert()" method="post">
<input name="keyword" type="text" id="keyword" value=""/>
<input name="name" type="text" id="name" value="<# FILENAME #>"/>
<input type="submit" name="Submit" value="Insert"/>
<div id="insert_response"></div>

<form action="javascript:insert()" method="post">
<input name="keyword" type="text" id="keyword" value=""/>
<input name="name" type="text" id="name" value="<# FILENAME #>"/>
<input type="submit" name="Submit" value="Insert"/>
<div id="insert_response"></div>

Wont Work. Just submits the first one. Whats the best way to fix this.

Heres the other codes

/* ---------------------------- */
/* 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 = "Just a second..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var keyword= encodeURI(document.getElementById('keyword').value);
var name = encodeURI(document.getElementById('name').value);

// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'insert.php?site_url='+site_url+'&name=' +name+'&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: "Keyword added".
document.getElementById('insert_response').innerHTML = 'Keyword added:'+response;
}
}


<? require_once "./source/includes/data.php";

if(isset($_GET['keywordl']) && isset($_GET['name'])){
$keyword= $_GET['keyword'];
$name= $_GET['name'];
$insertKeyword_sql = "UPDATE `mmh_file_storage` SET `keyword` = '{$keyword}' WHERE `filename` = '{$name}'";
$insertKeyword= mysql_query($insertKeyword_sql) or die(mysql_error());
echo $keyword;
} else {
echo 'Error! Please fill all fileds!';

}
?>

A1ien51
03-25-2008, 03:15 AM
You can not just copy and paste code and think it is going to work a second time on the page. Think about what happens. You get multiple elements with the same id. If you code a proper HTML document, you would know that ids are singular. They can only be used once.

Eric

Goins
03-30-2008, 07:17 AM
You can not just copy and paste code and think it is going to work a second time on the page. Think about what happens. You get multiple elements with the same id. If you code a proper HTML document, you would know that ids are singular. They can only be used once.

Eric

can you help me out to create a function that will work with this?