1

upload-file.php と呼ばれる 2 つのページがあります。このページは、画像をデータベースとフォルダーにアップロードします。

私のPHPページは次のようになります。

    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file))  
    { 



        $insert=mysql_query("insert into match_item_image set item_id='".$_SESSION["session_temp"]."', image='".$name."',   adid='$adid'") or die(mysql_error());
$cc=mysql_insert_id();
        echo "success".$cc; 

私の他のページは、アップロード時に私の画像を表示する JavaScript 関数で構成されています。私が抱えている問題は、フォルダーにアップロードするときに画像名を変更する必要があることです。画像名を変更することはできましたが、ユーザーがファイルをアップロードするときに JavaScript 関数が画像の元の名前を探しているため、画像をアップロードすると空白で表示されます。

これは関数の一部です:

$(function()


{

    var btnUpload=$('#upload');
    var status=$('#status');
    new AjaxUpload(btnUpload, {
    action: 'upload-file.php',
    name: 'uploadfile',
    onSubmit: function(file, ext)
    {
     if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
     // extension is not allowed 
    status.text('Only JPG, PNG or GIF files are allowed');
    return false;
    }status.text('Uploading...');
    },

    onComplete: function(file, response)
    {
        //On completion clear the status
        status.text('');
        //Add uploaded file to list
        var bb=response.substr(0,7)
        var idd=response.replace('success',' ');
        var idb =idd.replace(/^\s*|\s*$/g,'');
        if(bb==="success")
        {


            $('<span id='+idd+'></span>').appendTo('#files').html('<img src="upload/+file+" alt="" width="290" height="330" class="image1" /><br><a href="javascript:void(0)"    onClick="deleteFile('+idd+');"  class="image1"   > <span   style="font-weight:bold;   font-size:14px; color:red;" >   Delete     </span></a>').addClass('success');
        }
        else 
        {
            $('<span></span>').appendTo('#files').text(response).addClass('error');
        }

誰か助けてくれる人がいたら教えてください。

私はjavascriptが初めてです。

やあ、

画像をアップロードするためのフォームが次のようになっていることを追加するのを忘れました

<div id="upload" ><span>Upload Image<span></div><span id="status"></span>
<table><tr><td id="files"></td></tr></table>

同じ名前の画像をアップロードした他のユーザーがいる可能性があるため、ユーザーがアップロードした元の画像名ではなく、フォルダーに保存した画像名をコードに表示する方法を知る必要があります。そしてそれらは混同されています。

みんな助けてくれてありがとう。私はこれに何週間も取り組んできましたが、理解できないようです。このコードはまさに私が必要としているものなので、あきらめたくありません。

4

4 に答える 4

1

次のように PHP を JavaScript に直接記述できます。

<script>
alert('<?php echo $myVar; ?>');
</script>

または、AJAX 呼び出しを作成してデータベース変数を取得し、PHP スクリプトで処理することもできます。

コードに基づく推奨事項:

onSuccess 関数で、PHP ページからファイルの名前を取得できるようにします。これは JSON で行うことができます。助けが必要な場合はお尋ねください。

于 2012-08-15T17:04:25.300 に答える
1

この PHP コードの代わりに:

    echo "success".$cc; 

JavaScript で簡単にアクセスできる JSON-String として結果を出力できます。

    header("Content-Type: application/json");
    echo "{
      \"status\" : \"success\",
      \"filename\" : "$file",
      \"id\" : $cc
    }";

この JavaScript 部分の代わりに

   //Add uploaded file to list
    var bb=response.substr(0,7)
    var idd=response.replace('success',' ');
    var idb =idd.replace(/^\s*|\s*$/g,'');

その後、応答オブジェクトのプロパティと同じように、結果のパラメーターにアクセスできます。

    var bb = response.status;
    var idd = response.id;
    var filename = response.filename;

詳細については、 http://de.wikipedia.org/wiki/JSONを参照してください。JSON 出力に php 関数を使用することもできます: http://www.php.net/manual/de/function.json-encode.php

于 2012-08-15T17:20:51.843 に答える
0
echo '<script type="text/javascript">var myJSVar = '.$myPHPVar.';</script>';
于 2012-08-15T17:04:57.323 に答える
0

PHP スクリプトに新しい名前を出力させ、それを JavaScript で使用する必要があります。応答を抽出する方法は、AJAX コードによって異なります。この例で使用したものについてはよくわかりません。

于 2012-08-15T17:06:42.607 に答える