2012-12-09 139 views
0

我做了這個code.there有兩個文件(index.html和jeu.php)在第一次,當我提交表單我將重定向到其他頁面(jeu.php),所以問題在單擊事件post方法ajax

<html> 
<head> 
<title>Jeu de dammes</title> 
</head> 
<style> 
form { margin-left:500px;margin-top:300px; width:300px } 
    </style> 
<body> 
<form id="formulaire" style="margin-left:100px, padding: 15px" method="post" > 
<table> 
<tr><td><h4> The first player</h4></td> 
    <td><input type="text" id="premier" name="premier"></td> 
</tr> 
<tr><td><h4> The second player</h4></td> 
    <td><input type="text" id="deuxieme" name="deuxieme"></td> 
</tr> 
<tr> 
<td></td> 
<td> 
<button id="action">Play</button></td> 
</tr> 
</table> 
</form> 
<script src="jquery-1.5.1.js"></script> 
<script> 
$(function() { 
    $('#formulaire').submit(function(e) { 
    e.preventDefault(); 
    var j1 = $('#premier').val(); 
    var j2 = $('#deuxieme').val(); 
    if (j1 == "") alert('saisir le nom du premier joueur'); 
    if (j2 == "") alert('saisir le nom du deuxieme joueur'); 
    if (j2 != "" && j1 != "") { 
    $.post('jeu.php', { premier: j1, deuxieme: j2}); 
    window.location.href = "jeu.php";   
    } 
}); 
    $('body').css('background-image', 'url(flower2.jpg)').css('background-size', '100%'); 
    $("#formulaire").css('background-image', 'url(flower.jpg)'); 
    }); 
</script> 
</body> 
</html> 

,並在另一個文件(jeu.php):

<?php 
echo $_POST["premier"]."<br/>"; 
echo $_POST["deuxieme"]."<br/>"; 
?> 

問題:頁面jeu.php總是空

  1. 爲什麼呢?
  2. 我該如何糾正我的代碼?
+0

通過爲空來表示沒有任何內容返回到頁面源代碼中,或者當您轉到此頁面時看不到任何內容?在您的網絡瀏覽器中檢查頁面源代碼。第二件事是,你發送'POST' ajax請求到'jeu.php',並在此之後立即將瀏覽器重定向到同一頁面,但是使用GET方法並且沒有形式參數。在'jeu.php'中,當請求是GET類型時,使用$ _POST數組總是空的。 – piotrekkr

+0

頁面源代碼爲空並注意到顯示。我可以更正它嗎 – lamloumi

+0

它不是空的有兩個'
',請在源代碼中查找。爲了糾正這個問題,不要使用javascript'$(function(){...});' – piotrekkr

回答

0

如果你正在使用AJAX,那麼jeu.php頁面不會被「看見」 ......發生什麼事是:

將數據發送到jeu.php,然後
2. jeu.php接收該數據會對此做任何處理,並返回index.html的響應。然後,
3. index.html對收到的數據做了一些處理 - 這部分必須在index.html的ajax方法的成功函數中完成。

我建議您使用jQuery AJAX方法的替代形式,因爲它更容易瞭解如何佈置代碼。類似:

$.ajax({ 
    type: "POST", 
    url: "jeu.php", 
    data: 'premier=' + j1 + '&deuxieme=' + j2, 
    success: function(data) { 
     alert('Server-side response was: ' + data); 
    } 
}); 

注:

  1. 上述代碼進入的index.html
  2. 從jeu.php的響應返回到這個結構,並且(在該例子中)在警報成功函數
  3. 上面的代碼替換此代碼:

$.post('jeu.php', { premier: j1, deuxieme: j2});
window.location.href = "jeu.php";

+0

這個值在警告消息中是正確的,但重定向不會起作用 – lamloumi

+0

我用'$ .ajax替換它{{ :「POST」, url:「jeu.php」, data:'premier ='+ j1 +'&deuxieme ='+ j2, success:function(data){ window.location.href = data.redirect; \t \t } });'但找不到頁面 – lamloumi