Php表单不起作用,作为2个单独的页面工作,但不作为1个组合

时间:2015-12-20 00:51:46

标签: javascript php html forms

好的,基本上我有一个PHP表单,所以你在表单中输入一些东西,然后在下一页上它将根据你输入的内容显示一些数据。我试图把它放到一个网页而不是2它作为2个单独的网页工作得很好但是当我试图将它们组合起来时它不起作用。

因为当该人首次加载网页时,不会提交任何表格,这意味着它无法加载我已经完成的任何数据

if (player1 != "")

这样如果php表单已经提交,那么这将是真的。当然,这是基于这样的假设:如果没有提交,它将等于""。 我不确定这是否正确,以便注意这一点。

这是表格

<form action="hacker.php" method="post">
<table>
<tr>
<td>Hackers name:</td>
<td>
<input type="text" name="player" value="" maxlength="100" />
</td>
</tr>
<tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="submit" value="Submit" />
</td>
</tr>
</table>
</form>

这是表单向(hacker.php)发送信息的页面:

<script>
  var yqlcallback = function(data) {
var results = data.query.results;
document.body.innerHTML = results.span;
var percentage = results.span;
rating = percentage.slice(0, -1);
if (rating > 30) {
    document.body.innerHTML = "This player has now been banned";
} else {
    document.body.innerHTML = "Please submit further evidence to have this person banned";
}
};

</script>

<script id="myscript"></script>

<?php
$player = $_POST['player'];
?>
 <script>
  var player1 = "<?php echo $player; ?>";
  var link1 = "https://query.yahooapis.com/v1/public/yql?q=select%20content%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.team-des-fra.fr%2FCoM%2Fbf3.php%3Fp%3D";
  var link2 = "%22%20and%20xpath%3D'%2F%2F*%5B%40id%3D%22content%22%5D%2Fdiv%5B3%5D%2Fdiv%2Fsp    an'&format=json&callback=yqlcallback";
  var link = link1 + player1 + link2;
   document.getElementById('myscript').setAttribute('src', link);
</script>

我尝试将这些2合并到一个名为index.php的php文件中,并使其成为只有在从获取信息时才加载数据的javascript,但它似乎并不起作用。她的我有: 表单操作是index.php,页面名称是index.php,我已经这样做了,因为我不想让它在提交表单后重定向到单独的链接。

<!--This is the form used to submit the info-->
<center>
<form action="index.php" method="post">
<table>
<tr>
<td>Hackers name:</td>
<td>
<input type="text" name="player" value="" maxlength="100" />    
</td>
</tr>
<tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="submit" value="Submit" />
</td>
</tr>
</table>
</form>

<!--This gets the data from another website and displays text depending upon what the value of that data is-->
<script>
  if (player1 != "") {
  var yqlcallback = function(data) {
    var results = data.query.results;
    document.body.innerHTML = results.span;
    var percentage = results.span;
rating = percentage.slice(0, -1);
    if (rating > 30) {
        document.body.innerHTML = "This player has now been banned";
    } else {
        document.body.innerHTML = "Please submit further evidence to have this person banned";
}
};
};

</script>

<!--This is changed so that the src is dependant upon what the person entered into the form, code that does that is below. Code above then reads the data sheet this gets-->
<script id="myscript"></script>


<!--This gets the value from the php form then converts it to javascript and creates a link with it used to get the data on that person-->
<?php
$player = $_POST['player'];
?>
<script>
  var player1 = "<?php echo $player; ?>";
  var link1 = "https://query.yahooapis.com/v1/public/yql?q=select%20content%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.team-des-fra.fr%2FCoM%2Fbf3.php%3Fp%3D";
  var link2 = "%22%20and%20xpath%3D'%2F%2F*%5B%40id%3D%22content%22%5D%2Fdiv%5B3%5D%2Fdiv%2Fspan'&format=json&callback=yqlcallback";
  var link = link1 + player1 + link2;
  if (player1 != "")  {
   document.getElementById('myscript').setAttribute('src', link);
  }
</script>

2 个答案:

答案 0 :(得分:2)

你必须使用Ajax。提交表单将始终将页面更改为操作页面(即使它是相同的,它将重新加载)。 我建议使用jQuery

答案 1 :(得分:2)

在上面的脚本中检查后,您正在定义player1变量。尝试移动

<script>
  if (player1 != "") {
  var yqlcallback = function(data) {
    var results = data.query.results;
    document.body.innerHTML = results.span;
    var percentage = results.span;
rating = percentage.slice(0, -1);
    if (rating > 30) {
        document.body.innerHTML = "This player has now been banned";
    } else {
        document.body.innerHTML = "Please submit further evidence to have this person banned";
}
};
};

</script>

低于其他脚本。