Как вернуть данные из php-вызова с помощью Jquery.form.js?

Я использую вызов AjaxForm() из jquery.form.js, чтобы попытаться запустить php-скрипт, который поместит данные в базу данных, а затем вытащит их. Но как бы вы сделали этот вызов, используя вызов ajaxForm из jquery.form.js?

*ОБНОВЛЕНИЕ: ДОБАВЛЕН НЕКОТОРЫЙ КОД *

    $('#profilepicbutton').live('change', function(){
    $("#preview").html('');
    $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
        $("#registerpt3").ajaxForm({target: '#preview'}).submit();
        /*$.post(
        "register3.php",{
            target:'#preview'},
            function(data){*/
                $("#preview").html('');
                $("#preview").append("<img src="+data+"></img>");
 });

Мой PHP-код...

    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
  $name = $_FILES['profilepicinput']['name'];
  $size = $_FILES['profilepicinput']['size'];
  if(strlen($name))
  {
    list($txt, $ext) = explode(".", $name);
    if(in_array($ext,$valid_formats))
    {
        if($size<(1024*1024)) // Image size max 1 MB
        {
            $actual_image_name = time().$session_id.".".$ext;
            $tmp = $_FILES['profilepicinput']['tmp_name'];
            $fp      = fopen($tmp, 'r');
            $data = fread($fp, filesize($tmp));
            $data = addslashes($data);
            fclose($fp);
            if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')"))
            {
                $query="select Pics, MAX(ID) from Personal_Photos where Email='$email'";
                $result=mysql_query($query) or die("Error: ".mysql_error());
                $row=mysql_fetch_array($result);
                header("Content-type: image/jpg");
                print($row['Pics']);
            }
            else
            {
                die('Invalid query: ' . mysql_error());
                echo "failed";
            }
        }
        else
            echo "Image file size max 1 MB. Image Size:"+$size;
    }
    else
        echo "Invalid file format..";
}
else
    echo "Please select image..! Bull shit".$email;
exit;

}

То есть вы говорите, что данные должны возвращаться автоматически, по волшебству?

Когда я вызываю ajaxForm, должен ли я вызывать функцию?

ОБНОВЛЕНИЕ: Запросите пример

привет. Я не хочу быть тем чуваком, который постоянно спрашивает пример кода, но есть ли у кого-нибудь пример вызова ajaxForm() и успешного возврата данных и публикации их на этой странице? Я не могу понять, что делать... Я только что попробовал

$('#profilepicbutton').live('change', function(){
    $("#preview").html('');
    $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
        $("#registerpt3").ajaxForm({
                target: '#preview',
                success: function(data)
                {                                   
                    $("#preview").html('');
                    $("#preview").append("<img src="+data+"></img>");
                }
            }).submit();
 });

Когда я использую firebug, чтобы выяснить, что находится в данных, он говорит мне, что они не определены. Действительно запутался. Пожалуйста помоги.


person SoftwareSavant    schedule 04.10.2011    source источник


Ответы (1)


Вы просто делаете: $('#myFormId').ajaxForm(); и это должно работать автоматически волшебным образом :) Вы можете передать любую из стандартных опций $.ajax в ajaxForm (полные и успешные обратные вызовы и т. д.).

Полную документацию можно посмотреть здесь: http://jquery.malsup.com/form/#getting-started

person deviousdodo    schedule 04.10.2011
comment
Я на самом деле дал этому шанс. Сценарий php печатает большой двоичный объект, возвращенный из вызова mysql. Но по какой-то причине, когда я помещаю данные на свою страницу, она буквально показывает мою php-страницу. Я покажу свой код через минуту. - person SoftwareSavant; 05.10.2011