我正在尝试使用jQuery将HTML textarea中的值传递给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语句,它回应很好。此外:
不确定我做错了什么。请帮助!!
答案 0 :(得分:0)
首先,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调用并查看服务器的响应方式。