繁体   English   中英

尝试使用XMLHttpRequest()将值从jquery传递到php文件

[英]Trying to pass values from jquery to php file using XMLHttpRequest()

我正在尝试使用jQuery将HTML文本区域中的值传递给PHP文件。 这是我到目前为止:

JQuery的

var jq = $.noConflict();
jq("#addUsers").click(function () {
    jq("#addModal").modal("show");
});

jq("#addUser").click(function () {
    var text = jq("textarea#emails").val();
    if (text.length == 0)
    {
        alert("Please enter new user e-mails line by line.");
    }
    else
    {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200)
            {
                jq("textarea#emails").innerHTML = xmlhttp.responseText;
            }
        };
        xmlhttp.open("GET", "add_users.php?emails=" + text + "&list=1", true);
        xmlhttp.send(null);
    }
});

add_users.php

<?php
//error_reporting(E_ALL);
ini_set('display_errors', '1');

$list = $_REQUEST["list"];
$emails = trim($_REQUEST["emails"]);

// This is where I will parse out the text line-by-line
// .....
?>

所以,这一切都是由第6行的点击功能激活的。但是当我这样做时, 没有任何反应 我尝试将echo语句几乎放到函数内的任何地方,并且它可以很好地进行呼应。 另外:

  • php文件与我正在使用的文件位于同一目录中。
  • 我试过在php文件中回声; 永远不会访问php文件。
  • 我尝试使用alert()回显响应文本; 什么都没发生。

不知道我做错了什么。 请帮助!!

首先, jq("textarea#emails").innerHTML不会起作用,因为你现在正处理一个jQuery包装元素,而不是原始的HTML元素。 如果你使用jQuery,你想用val()html()设置内容(取决于元素)。

因此,您可以成功调用脚本,而不是在页面上输出结果。

您可以使用jQuery极大地简化您的ajax。 我将特别使用load() ,因为您的意图是将结果粘贴到元素中。

我将从这个开始:

jq("#addUser").click(function () {
    var text = jq("textarea#emails").val();
    if (text.length == 0)
    {
        alert("Please enter new user e-mails line by line.");
    }
    else
    {
        jq("textarea#emails").load("add_users.php?emails=" + text + "&list=1");
    }
});

参考: http//api.jquery.com/load/

一旦您的ajax查询成功运行,请检查您的开发工具网络选项卡(假设此处为Chrome)以观看ajax调用并查看服务器的响应方式。

暂无
暂无

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

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