簡體   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