0

javascript から php にデータを送る方法は? ajax を使用するとエラーが発生しますか? これが私のコードです

script.js

function uploadPhoto(imageURI) {
var options = new FileUploadOptions();

    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";

    options.chunkedMode = false;

    var ft = new FileTransfer();
    ft.upload(imageURI, "http://*my_ip*/TA/php/upload.php", win, fail, options);
};

アップロード.php

include 'db.php';
$t=time();
$id_place = $_GET["id_place"];
$file_name = $_FILES["file"]["name"].$t.".jpg";
$dir_full = "images/full/"."full_".$file_name;
$dir_small = "images/small/"."small_".$file_name;

move_uploaded_file($_FILES["file"]["tmp_name"], $dir_full);

$im_src = imagecreatefromjpeg($dir_full);
$src_width = imageSX($im_src);
$src_height = imageSY($im_src);

$dst_width = 50;
$dst_height = ($dst_width/$src_width)*$src_height;

$im = imagecreatetruecolor($dst_width,$dst_height);
imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);

imagejpeg($im, $dir_small);

$temp = "http://*my_ip*/TA/php/images/full/"."full_".$file_name;
$temp2 = "http://*my_ip*/TA/php/images/small/"."small_".$file_name;
//$id_place = .$id_place;
$query = "insert into gallery values ('','$id_place','$temp','$temp2')";
mysql_query($query);

imagedestroy($im_src);
imagedestroy($im);

ajaxを使用すると、script.jsは次のようになります(間違っている場合は修正してください)

script.js と ajax

function uploadPhoto(imageURI) {
    jquery.ajax({
        type: 'GET',
        url: 'http://203.189.122.77/TA/php/gallery.php',
                    data: {id_place: window.localStorage("id_place")},
            dataType: 'jsonp',
            jsonp: 'jsoncallback',
            timeout: 5000,
                    success: function(data, status){
            //alert(window.localStorage.getItem("id_place"));
            var options = new FileUploadOptions();
                        options.fileKey="file";
            options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
            options.mimeType="image/jpeg";
            options.chunkedMode = false;

            var ft = new FileTransfer();
            ft.upload(imageURI, "http://203.189.122.77/TA/php/upload.php", win, fail, options, true);
        },
        error: function(){
            alert('There was an error when download images');
        }
    });

};

ajax を使用すると、常にエラー関数が発生します。ajax を使用しない場合、id_place を取得できません

4

1 に答える 1

1

JSONP を使用すると、サーバーは通常の JSON オブジェクトを返すのではなく、クライアントで実行する JavaScript 関数を返します。クライアント コードは、データにアクセスするためにサーバーから返された関数を実行します。

私は別の投稿を信じています: Simple jQuery, PHP and JSONP example? あなたのコンテキストでこれを行う方法を説明します。

JSONP の仕組みをより一般的に理解するには、http://en.wikipedia.org/wiki/JSONPが役に立つかもしれません。

于 2013-05-26T15:33:48.873 に答える