繁体   English   中英

将变量发布到php文件并使用ajax将结果加载到同一页面上

[英]Post variables to php file and load result on same page with ajax

我已经尝试了很多搜索,但似乎无法使任何工作正常。

我正在尝试制作一个将信息发送到PHP文件并在同一页面上显示PHP文件输出的表单。

到目前为止,我有:

HTML:

    <html>
      <form id="form">
        <input id="info" type="text" />
        <input id="submit" type="submit" value="Check" />
      </form>
      <div id="result"></div>
    </html>

JS:

<script type="text/javascript">

var info= $('#info').val();
var dataString = "info="+info;

$('#submit').click(function (){
     $.ajax({
        type: "POST",
        url: "/api.php",
        data: dataString,
        success: function(res) {
            $('#result').html(res);
                }

  });

});
</script>

PHP:

<?php

  $url = '/api.php?&info='.$_POST['info']; 

  $reply = file_get_contents($url); 

   echo $reply;

?>

当我将表单操作设置为api.php时,得到的结果就是我想要的。 基本上,我想要的是在“结果” div中看到与加载api.php时看到的相同的东西。

我无法获得任何解决方案。

您的click事件不会停止对服务器的页面请求的实际事务。 为此,只需添加“ return false;”即可。 直到您点击功能结束:

$('#submit').click(function (){
 $.ajax({
    type: "POST",
    url: "/api.php",
    data: dataString,
    success: function(res) {
        $('#result').html(res);
    }
 });

 return false;

});

此外,您应该更新type="submit"从提交按钮type="button"或(但不能同时)的变化.click(.submit(

谢谢大家的帮助,我现在开始工作。

我做错了几件事:

  1. 我在php文件中使用单引号作为URL,也使用$ _POST ['']变量。

  2. 我需要添加return false; 正如史蒂夫指出的那样。

  3. 我没有输入元素的“名称”,只有一个ID。

我认为您的代码在填充dataString之前先评估它。 尝试将其放入$.ajax函数。 下面的代码。

/* ... */

$('#submit').click(function (){
    $.ajax({
        var info= $('#info').val();
        var dataString = "info="+info;

/* ... */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM