I am new to JavaScript, so pardon my lack of knowledge.
I am trying to code a contact form and want to get the value entered in a particular input text field as soon as a value entered by the visitor using AJAX and pass it to a PHP string so that I can show relevant information based on the value entered before hitting the submit button.
How Can I do that using jQuery?
Here are the codes I am using for the form:
<form method="post" action="">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="text" id="url" name="url" />
<input type="checkbox" id="showdetails" name="showdetails" /> Show URL Details
<input type="submit" value="Submit" />
</form>`
I need the value of the URL input field to pass to a php string (as soon as the user checks the showdetails checkbok) so that I can process it in background to show information based on the url.
I am new to JavaScript, so pardon my lack of knowledge.
I am trying to code a contact form and want to get the value entered in a particular input text field as soon as a value entered by the visitor using AJAX and pass it to a PHP string so that I can show relevant information based on the value entered before hitting the submit button.
How Can I do that using jQuery?
Here are the codes I am using for the form:
<form method="post" action="">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="text" id="url" name="url" />
<input type="checkbox" id="showdetails" name="showdetails" /> Show URL Details
<input type="submit" value="Submit" />
</form>`
I need the value of the URL input field to pass to a php string (as soon as the user checks the showdetails checkbok) so that I can process it in background to show information based on the url.
Share Improve this question edited Jan 7, 2013 at 12:50 Abhik asked Jan 7, 2013 at 12:34 AbhikAbhik 6743 gold badges23 silver badges43 bronze badges 4- 4 Using what? jQuery? mootools? native JS? Have you tried anything? – Jonnix Commented Jan 7, 2013 at 12:37
- Yes, jQuery. Sorry I didn't mentioned that. Edited my question and added that. – Abhik Commented Jan 7, 2013 at 12:49
- And do you want it as soon as a value entered by the visitor or (as soon as the user checks the showdetails checkbok) ??? There is a huge difference in user experience. – mplungjan Commented Jan 7, 2013 at 12:52
- @mpungjan, as soon as the user checks the checkbox. Then it should check if any value entered in the field and pass it to a php string I could use in my functions. If no value is entered yet the box is checked, an error message pops up. Sorry, I am totally novice in JavaScript, so please help. – Abhik Commented Jan 7, 2013 at 13:08
2 Answers
Reset to default 8Given this html:
<form method="post" action="">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="text" id="url" name="url" />
<input type="checkbox" id="showdetails" name="showdetails" /> Show URL Details
<input type="submit" value="Submit" />
</form>
jQuery (checkbox)
$(function() {
$("showdetails").on("click",function() {
var url = $("#url").val();
if (url && $(this).is(":checked")) {
$.get("relevantinfo.php",
{ "url": url },
function(data){
// do something with data returned
}
);
}
else {
// clear relevant info here
}
});
});
The receiving end: Retrieving POST Data from AJAX Call to PHP
get the input string using onchange event in text field .
ref : https://developer.mozilla.org/en-US/docs/DOM/element.onchange
Then using that string content, call AJAX function.
function load(string) {
var xmlhttp;
if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "YOUR_URL", true);
xmlhttp.send();
}
As suggested in the comments, use jquery + AJAX. For jquery,
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.divClass').html(data);
alert('Load was performed.');
}
});