Javascript 无法使用jQuery AJAX函数将包含字符串内容的jQuery变量发送到PHP?

Javascript 无法使用jQuery AJAX函数将包含字符串内容的jQuery变量发送到PHP?,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,jQuery函数的代码段如下所示: function addMessage() { if (textval != "") { text_string='<div class="alert-box round"><p class="text-left">' + userName + ':' + textval + '</p></div></br>'; alert(text_string);

jQuery函数的代码段如下所示:

function addMessage() {
    if (textval != "") {
        text_string='<div class="alert-box round"><p class="text-left">' + userName + ':' + textval + '</p></div></br>';
        alert(text_string);
        $.ajax({
            type:"POST",
            url:"process.php",
            data: {'text_string': text_string},
            cache:false,
            success:function(){
                alert("submitted")
            }
        });
        $("input[type=text]:last").val("");
    }
    enterButton = 0;
}
<body>
    <?php 
        //$host = "localhost";
        $text_string=$_POST['text_string'];
        echo "string submitted is".$text_string;        
    ?>
</body>
函数addMessage(){
如果(textval!=“”){
text_string='

'+userName+:'+textval+'


'; 警报(文本字符串); $.ajax({ 类型:“POST”, url:“process.php”, 数据:{'text\u string':text\u string}, cache:false, 成功:函数(){ 警报(“已提交”) } }); $(“输入[类型=文本]:最后一次”).val(“”); } enterButton=0; }
process.php代码如下所示:

function addMessage() {
    if (textval != "") {
        text_string='<div class="alert-box round"><p class="text-left">' + userName + ':' + textval + '</p></div></br>';
        alert(text_string);
        $.ajax({
            type:"POST",
            url:"process.php",
            data: {'text_string': text_string},
            cache:false,
            success:function(){
                alert("submitted")
            }
        });
        $("input[type=text]:last").val("");
    }
    enterButton = 0;
}
<body>
    <?php 
        //$host = "localhost";
        $text_string=$_POST['text_string'];
        echo "string submitted is".$text_string;        
    ?>
</body>

我收到的警报显示文本字符串的值,然后是“已提交”,但当我打开php页面时,它显示一个错误:

未定义索引:文本\字符串


我看到了各种各样的答案,似乎没有一个是我的答案。问题出在PHP代码或jQuery代码中,还是两者都有?

如果希望在下次加载“process.PHP”时保存AJAX请求传递的值,请尝试在会话中保存它。因此,您可以将代码更改为:

<?php
    session_start();

    // Store value in session if it is passed
    if (isset($_POST['text_string'])){
        $_SESSION['text_string'] = $_POST['text_string'];
    }
    // Read and echo value from session if it is set
    else if (isset($_SESSION['text_string'])){
        $text_string=$_SESSION['text_string'];
        echo "string submitted is".$text_string;
    }
?>

现在,您的PHP脚本将在会话中存储传递的值,并在您将页面加载到其他位置时回显存储的值。(另一种选择是将值存储在数据库中……尽管我不确定您目前是否设置了一个数据库。)


希望这有帮助!如果您有任何问题,请告诉我。

看起来不错,您在网络中的帖子和标题中看到了什么请尝试删除
'text\u string'
中的引号,并将其命名为类似
此字符串的其他名称。然后将PHP中的
$\u POST
更改为
$\u POST['this\u string']
如何打开PHP页面以获取
未定义的索引:text\u string
?使用此字符串时没有错误更改。您可以读取它,但需要传递它。如果您直接在浏览器上打开“process.php”,您将得到该错误,因为您没有在任何地方传递文本字符串。如果您打开“process.php?text\u string=value”,您将传递变量,但是您仍然会得到该错误,因为您正在读取$\u POST,但通过$\u GETYup传递它,这是有效的!这意味着它正在发送值。@Alvarontoro这就是你的建议吗?我还计划在未来使用数据库耶!代码中的一切都很好——只是,您无法存储在页面加载之间传递的值。这是你想要的吗?是的,我想检查数据是否正在发送。请检查我的另一个查询的问题评论线程。