0

我做了这个代码。第一个中有两个文件(index.html 和 jeu.php),当我提交表单时,我将被重定向到另一个页面(jeu.php)所以问题出在点击事件中

<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. 我怎样才能更正我的代码?
4

1 回答 1

0

如果您使用的是 AJAX,那么 jeu.php 页面将永远不会被“看到”... 发生的情况是:

1.index.html将数据发送到jeu.php,然后
2.jeu.php接收该数据,对其进行处理,然后返回响应到index.html. 然后,
3.index.html对接收到的数据做一些事情——这部分必须在.ajax方法的success函数中完成index.html

我建议您使用 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";

于 2012-12-09T20:44:57.763 回答