2016-12-13 7 views
0

で(特別なイメージ)データを送信する: 私の問題は、私はボタンを提出する際、Ajaxは戻って私のクライアントに空のデータ配列を送信します。コンソールのDebbugingはヘッダーのデータを表示しますが、プレビューと応答の値は空です。Joomlaのは、Joomlaのを使用したアヤックス(FORMDATA)

はここに(私は、ブートストラップからモーダルフォームを使用しています)私のコードです。私のデフォルトのスクリプトで

HTML:

<form action="<?php echo JRoute::_('index.php?option=com_addproduct&view=addproducts'); ?>" method="post" name="modalMessageForm" id="modalMessageForm" enctype="multipart/form-data"> 
<input type="file" id="message-image-upload" accept="image/*" style="display:none;" name="message-image-upload"> 
<textarea class="form-control message-textarea" id="message-textarea" placeholder="Nachricht..." name="new-message" rows="4"></textarea> 
<button type="button" id="button-close-message" class="btn btn-default btn-block btn-message-close" style="display:none; margin-top:5px;"><?=JText::_('COM_ADDPRODUCT_MODAL_MESSAGES_CLOSE')?></button>    
</form> 

jQueryの/アヤックス:

ここ
$(document).on("submit", "#modalMessageForm", function(e) 
     { 
      var form = $('#modalMessageForm').get(0); 
      e.preventDefault(); 
      var formData = new FormData(form); 

for(var pair of formData.entries()) { 
       console.log(pair[0]+ ', '+ pair[1]); 
      } 

$.ajax({ 
       crossDomain: true, 
       type: "POST", 
       url: "index.php?option=com_addproduct&task=sendMessages&format=json", 
       data: formData, 
       dataType: "json", 
       processData: false  
      })  
.done(function(data, textStatus, jqXHR){ 
console.log('Message: '+data.new-message+' PicName: '+data.img); 
      }) 

     }); 

私controller.php:

public function sendMessages() 
     { 
      JResponse::setHeader('Content-Type', 'application/json', true); 
      $app  = JFactory::getApplication(); 
      $input  = $app->input; 
      $new-message = $input->getString('new-message', '', 'RAW'); 
      $img  = $_FILES['message-image-upload']["name"]; 
      $img = JFile::makeSafe($img); 

      $results=array(
       'new-message' => 'new-message', 
       'img' => $img 
         ); 

      echo json_encode($results); 
      $app->close(); 
     } 

Iましコンソールで件のデータ/変数ログ。

次のとおりです。 新しいメッセージ:ヌル、 IMG:ヌル

はcontentTypeのを設定しようとしている:偽のは私に500エラーになります。

は、私が何かを把握、私のネットワーク enter image description here

+0

form.append( "メッセージ画像アップロード"、$( "#メッセージ画像アップロード")[0] .files [0])。これはファイルデータを取得するためのものです – Alagesan

+0

私は何かを考え出します。 – daskaras

答えて

0

からの情報That's非常

、ありがとうございました。 は私のAJAXのコマンドでURLをIt's。 私がうまくいくと、私は

contentType: false, 

を設定することができます。しかし、これはenought安全ではありません

url: 'upload.php' 

のような通常のURLを使用しています。 は、私はちょうどこのURL

url: "index.php?option=com_addproduct&task=sendMessages&format=json", 

を使用したいしかし、私は、ビューが見つからない場合、エラーメッセージが表示されました。それは非常に奇妙です。

+0

私は解決策を得ました。私は外部ファイル(upload.php)を使用しており、joomlaフレームワークを含んでいます。 – daskaras

関連する問題