AJAX Отправить форму .. данные не отправляются - PullRequest
1 голос
/ 19 августа 2010

Я боролся с этим фрагментом кода буквально несколько дней ... Буду признателен за любую помощь

Скрипт без проблем вызывает файл php при нажатии клавиши submit.Однако он не публикует данные формы вместе с ним.

HTML-форма

<form id="image_form" name="image_form" method="POST"

action = "" enctype = "multipart / form-data"> Файл:

Javascipt

$(function() {
$(".submit").click(function() {
  var obj = document.getElementById("form_div");
  var load = document.getElementById("load");
   jQuery.ajax({
    type: "POST",
    name: "image",
    url: "upload_imagel.php",
    enctype: "multipart/form-data",
    beforeSend: function(){
     obj.style.display = 'none';
     load.innerHTML = "<img src='../images/misc/ajax-loader.gif'

/> ";}, error: function () {alert ('Произошла ошибка');}, время ожидания: 5000, success: function (results) {load.style.display = 'none'; obj.style.display = 'block';}}) return false;});});

PHP

Следующее тогда пусто

$image=$_FILES['image']['name'];

Благодаря pekka я изменил следующий AJAX на

$(document).ready(function() { 
    var obj = document.getElementById("form_div");
    var load = document.getElementById("load");

    var options = { 
        beforeSend: function(){
             obj.style.display = 'none';
             load.innerHTML = "<img src='../images/misc/ajax-loader.gif' />";
            },
        success: function(){
             load.style.display = 'none';
             obj.style.display = 'block';
            },
        type:      'POST', 
        timeout:   5000 
    }; 

    $('#image_form').submit(function() { 
        $(this).ajaxSubmit(options); 
        return false; 
    }); 
}); 

Однако все еще получаю ту же проблему

$image=$_FILES['image']['name'];

По-прежнему пусто: (*

PS Заголовок HTML-формы теперь

<form id="image_form" method="POST" action="sMain/upload_image_small.php" enctype="multipart/form-data">

Я что-то упустил?

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

Загрузка файлов с помощью AJAX невозможна, поскольку ваш сценарий не получит права на чтение файла на клиентском компьютере.

Вы можете взглянуть на плагин jQuery form для этого используется невидимый iframe.

0 голосов
/ 19 августа 2010

Работает Пекка, в моем php файле была опечатка.Так раздражает.

Спасибо .. также сталкивался с этим через другой форум

http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html

Спасибо вам обоим за вашу помощь.

0 голосов
/ 19 августа 2010

Вы можете попробовать использовать Plupload (http://www.plupload.com).. Он имеет множество функций и хорошо работает для загрузки файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...