2013-06-02 48 views
-1

我有一個PHP while while循環自動生成的表單。AJAX功能不工作? PHP/MySQL

我想要的形式使用AJAX和數據要做到這一點,我有以下提交...

PHP形式

<div class="user"> 
    <span>Become friends with '.$row['screen_name'].'</span> 
    <form method="POST" action="./create.php"> 
     <input type="hidden" value="'.$row['user_id'].'" name="follow_id" class="follow_id" /> 
     <input type="submit" class="follow-submit" value="Get '.$row['credits_offered'].' Credits" /> 
    </form> 
</div> 

AJAX

// Create Friendship AJAX 
$(".follow-submit").on("click", function() { 

    var follow_id = $(".folow_id").val(); 

    var dataString = 'follow_id=' + follow_id; 
    alert (datastring); return false; 

    $.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: dataString, 
     success: function() { 
     $('.message').html("<p>Friend request sent!</p>"); 
     } 
    }); 
    return false; 

}); 

的問題是我的AJAX,點擊事件似乎甚至沒有註冊,表單繼續發佈和重定向通過對create.php

+0

...什麼問題呢? – deceze

+0

'與'。$ row ['screen_name']'成爲好友。''哪裏的PHP標籤''? –

+0

PHP在我的頁面頂部@dianuj – Liam

回答

0

添加此代碼調試和會看到什麼在你的螢火在Firefox的控制檯錯誤

success: function($res) { 
    console.log($res) 
    $('.message').html("<p>Friend request sent!</p>"); 
    }, 
error: function($a, $b) { 
    console.log($a); 
    console.log($b); 
} 

是否存在

+0

謝謝@AhmedSaad,我收到'datastring is undefined?'但follow_id值是用PHP生成的? – Liam

+0

問題是 var follow_id = $(「。folow_id」)。val();使用此 var follow_id = $(「。follow_id」)。val(); –

2
$(".follow-submit").on("click", function(event) {event.preventDefault(); 
... 
+0

+1該死的更快,正在建議'' –

0

你停止將打印錯誤,你的通過執行AJAX函數return聲明。刪除它,你的代碼也可以工作;爲了防止錨點重定向到create.php,您必須在您的點擊處理函數中添加event.preventDefault();。你的代碼應該是這樣的:

// Create Friendship AJAX 
$(".follow-submit").on("click", function(event) { 
event.preventDefault(); 
    var follow_id = $(".folow_id").val(); 

    var dataString = 'follow_id=' + follow_id; 
    //alert (datastring); return false; 

    $.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: dataString, 
     success: function() { 
     $('.message').html("<p>Friend request sent!</p>"); 
     } 
    }); 
    return false; 

}); 
0

問題是你沒有取消提交事件。爲此,您必須將該事件作爲點擊功能的參數,並在其上調用preventDefault()。另外,在你開始AJAX之前,你的return false正在停止你的功能。您還有一個錯字,您在JavaScript的第二行輸入folow_id而不是follow_id。另外,在我看來,更正確的做法是使用submit()函數。把你的窗體上的ID,做這樣的:

HTML:

<div class="user"> 
    <span>Become friends with '.$row['screen_name'].'</span> 
    <form id="follow-form" method="POST" action="./create.php"> 
     <input type="hidden" value="'.$row['user_id'].'" name="follow_id" class="follow_id" /> 
     <input type="submit" class="follow-submit" value="Get '.$row['credits_offered'].' Credits" /> 
    </form> 
</div> 

的JavaScript:

// Create Friendship AJAX 
$("#follow-form").submit(function(event) { 
    event.preventDefault(); 
    var follow_id = $(".follow_id").val(); 

    var dataString = 'follow_id=' + follow_id; 
    // alert (datastring); return false; 

    $.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: dataString, 
     success: function() { 
     $('.message').html("<p>Friend request sent!</p>"); 
     } 
    }); 

    return false; 
});