Избегайте вызова действия формы в php файл при загрузке новой страницы - PullRequest
0 голосов
/ 20 октября 2011

У меня есть форма, которая вызывает Post .php файл, который я, хотя и был основой для продвижения ajax (в отличие от получения данных с помощью ajax)К сожалению, мой браузер всегда будет загружать мой названный файл .php вместо того, чтобы оставаться на странице, содержащей форму.Я думаю, что есть конкретная строка кода, которую я где-то забыл.Что я должен искать?

<form id="form-upload" enctype="multipart/form-data" action="_scripts/ajax/cropImage.php" method="post" onsubmit="return checkCoords();" style="min-height:450px; position:relative;">
                    <input type="hidden" id="x" name="x" />
                        <input type="hidden" id="y" name="y" />
                        <input type="hidden" id="w" name="w" />
                        <input type="hidden" id="h" name="h" />
                    <input type="hidden" id="ht" name="ht" />
                    <input type="hidden" id="wt" name="wt" />
                    <div style="position:absolute">
                    <h2>Upload a picture</h2>
                    <input id="input-upload" name="input-upload" type='file' onchange="readURL(this);" /><br/>
                    <img id="upload-preview" src="" alt="" />
                    <div style="position:absolute; bottom:0;">
                        <input type="submit" value="Upload" />
                        <input type="button" value="Cancel" onclick="$('#fancybox-close').trigger('click');"/>
                    </div>
                    </div>
                    <img id="spinner" style="position:absolute; background-color:transparent; left:49%; top:50%;" src="_images/uploads/ajax-loader.gif" height="32" width="32"/>
                </form>

Ответы [ 4 ]

0 голосов
/ 20 октября 2011
$('#btnSubmit').click(function() {  
    // we want to store the values from the form input box, then send via ajax below  
   var comment = $('#comments').val();  
   var name = $('#Name').val();

           $.ajax({  
               type: "POST",  
               url: "contactus.php",
              // data: "fname="+ fname +"& lname="+ lname,  
               data: "name="+ name +"& comment="+ comment,  
               success: function(response){ 
                $('#mail_sent').html(response);    
               }  
           });
      });
0 голосов
/ 20 октября 2011

Вы можете публиковать данные так же, как вы можете получать данные с помощью библиотеки jquery ajax.

См. Метод .post () .

Вы можете получить содержимое полей ввода и затем отправить их с помощью ajax. Если вы хотите сохранить текущую структуру формы, вы можете использовать doSubmit (); вернуть ложь; в событии onsubmit для отмены первоначальной отправки и использования вашего метода ajax.

0 голосов
/ 20 октября 2011

Вы используете кнопку типа отправки.Измените тип на «button» и сделайте событие onclick примерно таким:

onclick="sendData();"

Ваша функция sendData () должна содержать правильный AJAX.Я вижу, вы используете JQuery, так что просто используйте встроенные функции AJAX:

$.ajax({
  url: "_scripts/ajax/cropImage.php",
  context: document.body,
  success: function(html){
    alert(html);
  }
});
0 голосов
/ 20 октября 2011

Кажется, что ваше понимание AJAX немного неверно, не поймите меня неправильно, я предлагаю вам прочитать больше об этом и попытаться реализовать его, используя библиотеки Jquery для Ajax .Эти функции очень хорошо документированы и имеют отличные примеры.

Я бы не использовал тэг формы при использовании ajax.

Это пример функции, которую вы использовали бы при использовании «представить» данные:

$.post("_scripts/ajax/cropImage.php", { 
                                       "y": yValue, 
                                       "x": xValue, 
                                       "h": hValue, 
                                          ...
                                       "input-upload": inputUploadValue
                                      });

Объяснение: Вы отправите все значения объекта ("y", "x" и т. Д.) В "_scripts / ajax / cropImage.php" в качестве переменных POST.Вы также можете создать функцию обратного вызова, чтобы получать данные с URL-адреса, с которого вы отправили эти значения, и проверять, все ли прошло хорошо.

Кажется, вы используете атрибут действия вашей Формы и отправляете ее,Покажите нам весь свой связанный код, пожалуйста. (текст перед отображением кода)

...