Submitting image directly through AJAX? - ajax

After looking around at some stuff, I've found that you can submit a form to a frame using the "target" attribute.
That works for me, except, it submits the WHOLE form.
I have a form. It's all submitted to a PHP file with AJAX POST.
I want to include an image upload in this form.
Is there any way to directly upload the image THROUGH AJAX to the same PHP file, or do I have to put a form within a form (because I think that that's rather sloppy).
Thanks a bunch!
NO jQuery. Straightforward DOM, please.

Related

What is the best way to place 2 forms on the same page?

What is the best way to place 2 identical forms on the same page, but use the same form action and fields for each form? How can I keep response messages in the respective form area from which the data was submitted?
I'd have one form in the footer of my site, and one form in a popup on the home page of my site. I'm using a hidden div and Magnific to open the popup containing the same code from the form that is located at the footer. Essentially, both form do the same thing, and utilize the same form action.
I do not have access to the form action, or the code in the form action page.
Currently, the forms existing on the same "page" are no problem, but when I submit an email on one form, the errors and success messages show up on both the popup form as well as in the footer form.
I've read that this may be possible to do with ajax, but for completeness sake, I want to make sure that I'm building that I'm doing what I can with the form html, before moving on to studying ajax for this.
Sadly there is no nice html/liquid solution for this.
The only way is to use cookies in order to save information which form was submitted and show the error message only for that form instead of the two ones.
AJAX is not a good solution because of the Google Recaptch-a when you submit the form more than once, which is a real pain in the a** since there is no way to disable it and the form will fail if you try to submit it with ajax.
The easiest solution is to use cookies, other option is to rely on an APP for this, but it may be an overkill for this.
Forms in Shopify are... how to put it nicely... dumb... basic... not developer friendly or just not made to be tweaked in any sort of way ( excluding the front-end ).

Form submission inside ajax

In my application on a button onClick, I am loading a form in an overlay using ajax. But this for submission is not redirecting to the required page.
I have tried the same form element without ajax and overlay, then it is working fine. So there is no problem with the form element. I think I am missing some settings to invoke form submission inside ajax.
I am using Web2py application.
I would greatly appreciate any suggestions.
EDIT:
I have one more similar question. I am displaying a web2py SQLFORM for a db-table in an overlay using ajax. The form submission and data update is working fine. But after the form submit I want to close the overlay and reload the page. Right now, it is showing 'Server Error' inside the overlay. I am using LOAD() to load the form on overlay.

MVC 4, Jquery Mobile, Ajax.BeginForm causing forms to submit twice

Does anyone know of any bugs or other insight to explain why when using MVC4 with jquery mobile, any form that is created using Ajax.BeginForm results in the form being submitted twice to the controller.
I had originally thought that since I am using the js bundling that the same js file might have been being included twice and might be triggering on form submit, however thats not the case, my list of js files are:
jquery-1.6.4.js
jquery-ui.1.8.11.js
jquery.mobile-1.1.0.js
jquery.unobtrusive-ajax.js
jquery.validate.js
knockout-2.0.0.js
MicrosoftAjax.js
MicrosoftMvcAjax.js
MicrosoftMvcValidation.js
Modernizr.js
Within the project Ajax is fully enabled for everything i.e. i'm not disabling anything through mobileinit.
I have not posted any form code because it literally happens with every form - a form with one field and a submit button will cause the submission twice - but only where Ajax.BeginForm is being used.
Html.BeginForm doesn't exhibit any of these problems.
I've been stuck on this for a few days now so any help would be greatly appreciated
jQuery Mobile by default hi-jacks any form submission and performs its own AJAX request. To stop this behavior you can place the data-ajax="false" attribute on any <form> tag. Also make sure to stop the regular behavior of the form so it doesn't submit normally, something like:
$('#my-form').on('submit', false);
Docs: http://jquerymobile.com/demos/1.1.0/docs/forms/forms-sample.html
You could also just use the built-in jQuery Mobile AJAX rather than including extra JS for it. Which would only require you to make the action attributes of the forms to the server-side file to which they posts.

Is it possible to show an overlay when a form is submitted (not via Ajax)?

A bit of background: I am using asp .net MVC and I am not allowed to asynchrounously submit the form using JQuery. When the user submits the form it takes a few seconds for the save to happen and then a message is displayed to them. In this time the client wants to show an overlay with an image and a processing label. I was using BlockUI (Jquery plugin) for all overlays but it wont work since I am not posting the form via ajax.
Any ideas on how to show an overlay is much appreciated.
TIA.
Regards,
Raja
You can tie a overlay to the button click, because you are not using AJAX the form submission will reload the page.
Also, blockUI should not require AJAX.
$('.button').click(function() {
$.blockUI();
});
Since u are using MVC, am not sure if u are using webforms or controllers.
Please try this,
For webforms, u can use OnClientClick to call a javascript to show the div that has the processing gif image.
For controller pattern, in onclick event handler before the form is submitted, use javascript/jquery to show the div that has the processing gif image.

External HTML page, inside AJAX Iframe?

Hi Masters Of Web Development.
I have a not that simple question this time. I have got a simple external HTML page, that I want to include in my site. The HTML page contains a submit form or something like that, and I wish to send this data from the form, without to reload the whole page. So I decided to put HTML page inside iframe. But, some people said that this is older technology, google doesn't like iframes, etc. So I want to use something like AJAX or JQuery to load that external HTML page, and to send submit form without reloading the whole page with it. :)
Any suggestions on how to make this?
Thanks in advance :)
Do you really need Google to index that iframe form? If that's the only iframe you have throughout the site, it aint going to be a problem in terms of google indexing.
About using the Iframe, if you are not comfortable learning and building ajax-type form, you'll still be fine (like what Frankie commented). Just make sure the form works, usable and compatible with popular browsers.
You want to use the jQuery Forms Plugin. Its very straightforward and easy to turn any normal HTML form into an AJAX form.

Resources