2012-01-27 81 views
0

多次使用此腳本將1或2個值傳遞給PHP文件,效果很棒。現在使用它來傳遞7個值,只有前兩個值得通過。通過AJAX將表格數據發送到PHP

$(document).ready(function(){ 
$("form#send_note").submit(function() { 
var to_user = $('#to_user').attr('value'); 
var from_user = $('#from_user').attr('value'); 
var defaultpic_from = $('#defaultpic_from').attr('value'); 
var defaultpic_to = $('#defaultpic_to').attr('value'); 
var your_username = $('#your_username').attr('value'); 
var message_title = $('#message_title').attr('value'); 
var message_contents = $('#message_contents').attr('value'); 
    $.ajax({ 
     type: "POST", 
     url: "../inbox/send_note.php", 
     data: "to_user="+ to_user +"& from_user="+ from_user + "& defaultpic_from="+ defaultpic_from + "& defaultpic_to="+ defaultpic_to + "& your_username="+ your_username + "& message_title="+ message_title + "& message_contents=" + message_contents, 
     success: function(){ 
      $('form#send_note').hide(function(){$('div.success2').fadeIn();}); 

     } 
    }); 
return false; 
}); 
}); 

我有雙重檢查所有的名字的,都是爲了之後FROM_USER(defaultpic_from)只是值等不會通過。 我相信這是我列出「數據:」的方式。當談到JavaScript時,我是一個完整的新手,所以任何關於如何讓這些通過的建議都是太棒了!

回答

0

我敢打賭,您的默認圖片的值正在終止查詢字符串。你可以用你的增值經銷商像這樣以確保他們正確地轉義:

$(document).ready(function(){ 
    $("form#send_note").submit(function() { 
    var to_user = encodeURIComponent($('#to_user').attr('value')); 
    var from_user = encodeURIComponent($('#from_user').attr('value')); 
    var defaultpic_from = encodeURIComponent($('#defaultpic_from').attr('value')); 
    var defaultpic_to = encodeURIComponent($('#defaultpic_to').attr('value')); 
    var your_username = encodeURIComponent($('#your_username').attr('value')); 
    var message_title = encodeURIComponent($('#message_title').attr('value')); 
    var message_contents = encodeURIComponent($('#message_contents').attr('value')); 
     $.ajax({ 
      type: "POST", 
      url: "../inbox/send_note.php", 
      data: {to_user:to_user, from_user:from_user, defaultpic_from: defaultpic_from, defaultpic_to:defaultpic_to, your_username:your_username, message_title:message_title, message_contents:message_contents}, 
      success: function(){ 
       $('form#send_note').hide(function(){$('div.success2').fadeIn();}); 

      } 
     }); 
    return false; 
    }); 
    }); 

您需要urldecode在PHP POST變量,但應該這樣做。

+0

嘗試這種現在 – user1053263 2012-01-27 01:29:56

+0

也,科學家是正確的約.VAL()。儘管您的方法可行,但圖書館更適合使用預期的功能。如果這仍然失敗,請嘗試將所有這些&更改爲僅在&與變量之間沒有空白處。 – 2012-01-27 01:33:16

+0

DARN同樣的事情。在我的PHP文件中,我有_POST變量通過這個函數,我應該刪除它還是添加一個不同的函數,現在我們添加了urldecode? $ to_user = htmlspecialchars(trim($ _ POST ['to_user'])); – user1053263 2012-01-27 01:34:24

1

1)你知道與jquery你可以做到這一點,對吧?

var defaultpic_from = $('#defaultpic_from').val(); 

2)同時,你不需要打開&成一個實體,但如前所述,你應該在

3)你是否覈實了所有的變量實際上有值使用encodeURIComponent方法ajax請求之前的值?當你看POST時會發生什麼?你是否在POST中獲得成員,但沒有值?或沒有鍵和沒有值?

4)嘗試使用Chrome的網絡選項卡中的開發工具來檢查請求和響應

這裏是我現在使用的例子,其中params爲NVP串和同步是真正

var callService = function(sync, params, successCB, errorCB){ 
    console.log('ENTER callService'); 
    $.ajax({ 
    type  : 'POST', 
    url  : 'required/core/Service.php', 
    async  : sync, 
    data  : params, 
    dataType : 'json', 
    success : function(data){ 
     console.log('ENTER POST SUCCESS'); 
     successCB(data); 
    }, 
    error  : function(){ 
     console.log('ENTER POST ERROR'); 
     errorCB(); 
    } 
    }); 
}; 

如果您可以進入請求和響應標題並向我們顯示,那麼真正有用的是什麼。你可以有PHP回聲

echo json_encode($_POST); 

,使其更容易得到響應

+0

Unfortunatley我知道javascript很少,只是對它的一個非常基本的理解。我通過沒有jQuery的php傳遞值,並通過正確的迴應。我打算玩這個encodeURIComponent函數,看看我能做什麼。非常感謝您的回覆! – user1053263 2012-01-27 01:41:08

+0

並通過respoonse,我的意思是更容易調試,說在Chrome的網絡選項卡 – thescientist 2012-01-27 01:46:11

+0

我已經有一段時間了鉻,從來沒有注意到網絡選項卡。這使生活更輕鬆。謝謝你,先生。那麼數據正在發送。另外,當我通過ajax並進入php文件,值經歷很好。 – user1053263 2012-01-27 01:53:53