Solved

jQuery not sending serialized get on a 3rd AJAX request

Posted on 2014-03-26
12
631 Views
Last Modified: 2014-03-26
I am not sure why jquery is doing this but on a 3rd ajax request it is not sending any data (IE GET form data)

Page 1: A simple admin interface with a menu and a div on the side. Clicking on the menu calls another file that is rendered in the div.

Example:
<li><a href="admin_users.php?type=2" id="type2" ><span>&nbsp;Pending</span></a></li>


<div id="action_window"></div>

<script>
$(document).ready(function(){
	$("#type1").bind('click',function(event){
		event.preventDefault();
		$.get(this.href,{},function(response){
			$('#action_window').html(response)
		}) 
	});
        $("#type2").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window').html(response)
                })
        });
        $("#type3").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window').html(response)
                })
        });
        $("#type4").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window').html(response)
                })
        });
        $("#type5").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window').html(response)
                })
        });
        $("#type6").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window').html(response)
                })
        })



});
</script>

Open in new window


Page 2 - then admin_users.php?type=2 opens in the DIV and displays a list of users to edit. The 2nd screen uses another jquery bind event to call out:
<div id="action_window2">
<a id="view" href="edit_contact.php?id=5">View/Edit</a>
</div>


<script>

$(document).ready(function(){
        $("#contact").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window2').html(response)
                })
        });
        $("#view").bind('click',function(event){
                event.preventDefault();
                $.get(this.href,{},function(response){
                        $('#action_window2').html(response)
                })
        })

});



</script>

Open in new window


Page 3 then displays a form that the user can update:

Note: This is php below so I am using the \ as the escape key...
                <div id=\"contact_form\">
                <form name=\"myform2\" id=\"myform2\">
                <input type=\"hidden\" name=\"id\" id=\"id\" value=\"$_GET[id]\">

                just some input boxes.... 

<input type=\"button\" value=\"Save\" class=\"button1\" onclick=\"admin_update_candidate_contact(this.form)\">

                                 function admin_update_candidate_contact(myform2) {
                                        $.get('admin_update_candidate_contact.php',
                                        $(myform2).serialize(),
                                        function(php_msg) {
                                                $("#contact_form").html(php_msg);
                                        });
                                 }

Open in new window


When I click on the button the file admin_update_candidate_contact.php is called but nothing is sent. I did a foreach to print out the GET data and nothing is being sent.

Firebug displays the request as is always does when I press the button. I have always used just a 2 tier ajax system so this is a little different for me. If you need to see the website in action I can provide the URL, username and password. It's a staging area so there is no sensitive info there.
0
Comment
Question by:Robert Saylor
  • 7
  • 3
  • 2
12 Comments
 
LVL 82

Expert Comment

by:leakim971
Comment Utility
yes, please provide the URL
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
http://pivot.customphpdesign.com/

username: admin
password: password

After you login, click "Pending" under candidates , then click on View/Edit for the test user.
0
 
LVL 82

Expert Comment

by:leakim971
Comment Utility
Work fine for me.saved
On which browser are you testing?
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
Change a field. The message is sucess because the SQL query is valid.

       
SELECT `candidate_profile`.*, `contacts`.* FROM `candidate_profile`,`contacts` WHERE `candidate_profile`.`contactID` = '' AND `contacts`.`id` = ''

id should pass a value.
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
I am using firefox on Windows 8 and firefox on Mac. Both does the same.
0
 
LVL 42

Assisted Solution

by:Chris Stanyon
Chris Stanyon earned 500 total points
Comment Utility
It's not working because the HTML that contains your form is malformed. If I look at the source after loading in the contact form, you'll see this:

<div id="contact_form">
   <form id="myform2" name="myform2"></form>
   <input type="hidden" value="5" id="id" name="id">
   ...

Open in new window


You'll notice that the form is self closing with nothing in it, so when you click the button it has nothing to serialize. Sort out the HTML and you'll be good to go.
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 82

Expert Comment

by:leakim971
Comment Utility
I changed addr2 I set with TEST, check
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
Thanks! I will give that a look in a few mins. I must have been dozing off while writing that lol.
0
 
LVL 42

Accepted Solution

by:
Chris Stanyon earned 500 total points
Comment Utility
Just bear in mind, for valid HTML (particularly with tables) the only things that can go inside a TABLE tag are standard table elements (TR/TD/TH etc). You can't put DIV tags directly inside TABLE tags - they need to go into a TD or TH, and the only things that can go in TR tags are TH and TDs - if you get it wrong then a browser will try and close off tags that it thinks are left open, causing all sorts of problems.
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
yea it must be somewhere in my 3 files closing the form early. I will check it out. Odd the last file does not close it but I see firebug is showing it closed like you said now.

                <div id=\"contact_form\">
                <form name=\"myform2\" id=\"myform2\">
                <input type=\"hidden\" name=\"id\" id=\"id\" value=\"$_GET[id]\">
                <b>Contact: (First, Middle, Last)</b><br>
                <input type=\"text\" name=\"fname\" value=\"$fname\" size=20> <input type=\"text\" name=\"mname\" value=\"$mname\" size=10> <input type=\"text\" name=\"lname\" value=\"$lname\" size=20><br><br>
                <b>Address:</b><br>
                <input type=\"text\" name=\"addr1\" value=\"$addr1\" size=40><br>
                <input type=\"text\" name=\"addr2\" value=\"$addr2\" size=40><br>

                <br>City / State / Zip:<br><input type=\"text\" name=\"city\" value=\"$city\" size=20>, <select name=\"state_id\">$state2</select>, <input type=\"text\" name=\"zip\" value=\"$zip\" size=5><br><br>
                <b>Communications:</b><br>
                <table border=0 width=600>
                <tr><td width=150>Email:</td><td><input type=\"text\" name=\"email\" value=\"$email\" size=40></td></tr>
                <tr><td>Cell Phone:</td><td><input type=\"text\" name=\"cell_phone\" value=\"$cell_phone\" size=40></td></tr>
                <tr><td>Home Phone:</td><td><input type=\"text\" name=\"home_phone\" value=\"$home_phone\" size=40></td></tr>
                <tr><td></td><td><input type=\"button\" value=\"Save\" class=\"button1\" onclick=\"admin_update_candidate_contact(this.form)\"></td></tr>
                </table>
                </form>
                </div>
0
 
LVL 6

Author Comment

by:Robert Saylor
Comment Utility
Thanks Chris. That's prob what is closing my tag. I will re-work the HTML in a few.
0
 
LVL 6

Author Closing Comment

by:Robert Saylor
Comment Utility
Thanks it is working now! It was bad HTML closing the form tag. I will remember that for next time.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction A frequently asked question goes something like this:  "I am running a long process in the background and I want to alert my client when the process finishes.  How can I send a message to the browser?"  Unfortunately, the short answer …
Introduction JSON is an acronym for JavaScript Object Notation.  It is a text-string data transport mechanism, capable of representing simple or complex data structures in a consistent and easy-to-read manner.  Similar in concept to XML, but more e…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now