2011-04-23 98 views
1

我有一個頁面,使用jQuery提交表單並將數據追回到它。但是,使用mod_rewrite時它不起作用。如果你是在這樣的頁面http://mydomain.com/file.php?string=m5cl,那麼它會工作。奇怪的。Mod_rewrite與jQuery ...爲什麼它不工作?

這裏是我的代碼:

$(function() { 
$('.error').hide(); 
$('input.text-input').css({backgroundColor:"#FFFFFF"}); 
$('input.text-input').focus(function(){ 
$(this).css({backgroundColor:"#FFDDAA"}); 
    }); 
    $('input.text-input').blur(function(){ 
    $(this).css({backgroundColor:"#FFFFFF"}); 
    }); 

    $(".button").click(function() { 
    // validate and process form 
    // first hide any error messages 
$('.error').hide(); 

var message = $("textarea#message").val(); 
var fullname = $("input#fullname").val(); 
var ticket_id = $("input#ticket_id").val(); 
var date = $("input#datee").val(); 
var picture_url = $("input#picture_url").val(); 
var userid = $("input#userid").val(); 
var user_status = $("input#user_status").val(); 
var sent = $("input#sent").val(); 

    var dataString = 'message=' + message + '&user_id=' + userid + '&user_status=' + user_status + '&date=' + date + '&sent=' + sent + '&ticket_id=' + ticket_id; 
    //alert (dataString);return false; 

    $.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    success: function() { 

     $(wrapperId).append("<div style='background-color:#dcd9d9;padding:15px;-moz-border-radius:8px;border-radius:8px; border:1px solid #d3d0d0;'><img src='" + $('#picture_url').val() + "' style='float:left;margin-right:15px;margin-top:-3px; border:3px solid #ffffff;' width='39'><div style='font-size:18px;font-family:Helvetica;color:#363636;font-weight:lighter;margin-bottom:2px;'>" + $('#fullname').val() + "</div><div style='font-size:14px;font-family:Helvetica;color:#363636;font-weight:lighter;text-align:justify;'>" + $('#datee').val() + "</div></div><div style='font-size:15px;color:#363636;line-height:18px;margin-top:15px;padding:0px 15px 0px 15px;text-align:justify;margin-bottom: 30px;'>" + $('#message').val() + "</div>"); 



     } 
    }); 
    return false; 
    }); 
}); 
runOnLoad(function(){ 
    $("input#name").select().focus(); 
}); 
+3

您可以粘貼.htaccess文件或mod_rewrite規則的內容嗎? – Alistair 2011-04-23 06:13:07

+0

我意識到我做了什麼......正在引用.js文件,如「/js/jsfile.js」,並且在使用mod_rewrite時,它沒有引用正確。所以我從絕對位置(或稱之爲「http://mydomain.com/js/jsfile.js」)引用它。 – iosfreak 2011-04-23 16:22:42

回答

0

不回答你原來的問題,但它是一個重要的補丁。

你不必做這一切:

var message = $("textarea#message").val(); 
var fullname = $("input#fullname").val(); 
var ticket_id = $("input#ticket_id").val(); 
var date = $("input#datee").val(); 
var picture_url = $("input#picture_url").val(); 
var userid = $("input#userid").val(); 
var user_status = $("input#user_status").val(); 
var sent = $("input#sent").val(); 

    var dataString = 'message=' + message + '&user_id=' + userid + '&user_status=' + user_status + '&date=' + date + '&sent=' + sent + '&ticket_id=' + ticket_id; 
    //alert (dataString);return false; 

    $.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    success: function() { 

如果所有的這些東西都在一個<form>元素,每一元素具有name=屬性,該屬性是相同的變量名(所以它被傳遞到正確的腳本),你可以凝聚的是所有,這個(是真的):

$.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: $('#yourFormId').serialize(), 
     success: function() { 

而且,由於你沒有消毒的值,如果我把一個空間分成一個那些輸入bo xes,您的POST請求將會死亡,因爲請求字符串將無效。

+0

我意識到,當你在那裏放置一個空間時,它會移除它們。非常感謝 - 這就像一個魅力! – iosfreak 2011-04-23 16:37:12

+0

真的嗎?這很方便。謝謝(你的)信息! – Blender 2011-04-23 16:52:14

0

你試過這個嗎?

var dataString = 
{ 
    'message': message, 
    'user_id': userid, 
    'user_status': user_status, 
    'date': date, 
    'sent':sent, 
    'ticket_id': ticket_id 
}