user2884621
user2884621

Reputation: 151

PHP - onClick doesn't seem to be working

I have series of dropdown boxes which can be selected by the user. I then want to have two different submit buttons that will do two different actions with the selected data. I am trying to code the submit button to run the selected php, but when I click the button does nothing. Any help is appreciated, my code is below. AFAIK the only relevant bits are my formSubmit function and the input tag near the bottom of the code.

edit: I have edited out a bulk of the code and left the pieces that I think are relevant. Please let me know if more info is needed.

<!DOCTYPE html>
<?php
require 'config.php';  // Database connection
//////// End of connecting to database ////////
?>
<html>
<head>
<SCRIPT language="JavaScript">
//Scripts

function submitForm(action)
    {
        document.getElementById('f1').action = action;
        document.getElementById('f1').submit();
    }

</script>
</head>
<body>
<div>   
<?Php    

//Beginning of Form
echo "<form method=post name='f1' action =''>";
//Dropdown boxes are here


//This line is what is not working:
echo "<input type='submit' value='Careers' onclick=\"submitForm('rt.php')\">";
echo "</form>";
?>
</div>
</body>
</html>

Upvotes: 1

Views: 1533

Answers (4)

ekad
ekad

Reputation: 14614

You're using document.getElementById('f1') in submitForm function

function submitForm(action)
{
    document.getElementById('f1').action = action;
    document.getElementById('f1').submit();
}

But your form doesn't have id attribute because of this line of code

echo "<form method=post name='f1' action =''>";

so the form won't be submitted when you click the Careers button. You need to add id='f1' attribute to the form by changing the above line of code to below

echo "<form id='f1' method='post' name='f1' action =''>";

Upvotes: 1

user2884621
user2884621

Reputation: 151

Not quite sure what is wrong with the function, xe4me may have the correct answer. However, I just changed my onClick to this and it worked:

onClick=\"document.f1.action='rt.php'; document.f1.submit(); return true;\"

Upvotes: 1

Milad
Milad

Reputation: 28592

you must add a class to your button and call the onclick based on that class name :

 <?Php    

  ....

 echo "<input type='submit' class='submitter' data-action='rt.php' value='Careers' >";
 echo "</form>";
 ?>

// In Javascript :

 document.getElementByClassName('submitter').onclick = function(){
  var action  = this.data('action');

   document.getElementById('f1').action = action;
   document.getElementById('f1').submit();

}

Upvotes: 0

T90
T90

Reputation: 577

Try the jQuery method :

http://api.jquery.com/jquery.post/ with How to get ID of clicked element with jQuery

Whenever any button is clicked, find its id and based on that, use $.post to post data to the location you want.

Upvotes: 0

Related Questions