3

我是 PHP 新手,试图弄清楚这一点,但仍然不理解。我正在尝试获取 jQuery 中 html 文本框的值并将其转换为变量,然后我可以将其存储为(变量或字符串?)并在页面刷新后再次拉回。

我希望用户点击一个按钮,然后执行以下操作:

$('.save').click(function () { 
    // pulls the value from the textarea
    var file = $('#subtext').val();
    // send to php to hold text
    $.ajax({
        url: '/mininote/system/data.php',
        type: 'POST',
        data: { textbox: file },
        success: function(data) {
            alert('Saved data to php!');
            $(save).text('All changes saved.').show().delay(3000).fadeOut(800);
        }
    });

});

然后接收发布数据并存储在 php 中,直到用户重新加载从 php中提取数据(或检查是否有数据)的页面,就像这样,并将文本框的值替换为 php 中的值:

$.ajax({
    url: '/mininote/system/data.php',
    type: 'GET',
    data: { textbox: file },
    success: function(data) {
        // add text back to text box
        $("#subtext").val(data);
    }
});

基本上我正在寻找的内容如下: -

  1. 一种执行 ajax POST 以插入从文本框中获取的数据的方法,
  2. 添加到 PHP
  3. 在页面重新加载时使用 GET 请求并将文本框文本替换为 PHP 文件中的文本。

我需要在 PHP 代码中添加什么?还是朝另一个方向走会更容易?我已经让这种方法在本地存储中工作。我还希望这项工作的浏览器兼容性。

我不需要为一堆用户设置它。任何能增加我对此知识的回应都会有很大帮助。

编辑:我真的在寻找更多服务器端的东西,所以它可以跨多个平台和设备使用。

4

6 回答 6

1

You could use the following simple PHP script to accomplish your goal:

<?php
session_start();

if (isset($_POST['textbox'])) {
   $_SESSION['textbox'] = $_POST['textbox'];
} else {
   echo $_SESSION['textbox'];
}
?>

Another option would be to use HTTP Cookies. Just set the cookie with JavaScript using a plugin or something simple such as, document.cookie = "variable=value"; and access it in PHP with, $_COOKIE["variable"].

Hope this helps.

于 2013-08-17T02:32:15.607 回答
1

实际上jquery-ajax 的工作原理如下:-

  1. 它需要请求和
  2. 它给出了回应。

根据您的要求,您还需要执行此步骤。所以为此,你

  1. 然后将请求发送到 PHP 页面
  2. 从 php 页面发送响应

所以用下面的替换你上面的jquery-ajax代码部分: -

$('.save').click(function () { 
    // pulls the value from the textarea
    var file = $('#subtext').val();
    // send to php to hold text
$.ajax({
    url: '/mininote/system/data.php',
    type: 'POST',
    data: { textbox: file },
    success: function(data) {
        alert('Saved data to php!');
        $('#subtext').val(data);
        $(save).text('All changes saved.').show().delay(3000).fadeOut(800);
    }
});

});

确保在将数据插入 DB 后,您的data.php页面文本框中的值已回显。这个过程将如下所示: -

数据.php

<?php
     $textbox = $_POST["textbox"];
        /*
             perform Your DB inser part here
         */
      if(data inserted to db)
      {
            echo $textbox;
      }
?>

希望这会帮助你。

于 2013-08-17T05:52:40.903 回答
0

Use a session, like a temporary cookie, like the following.

session_start();
$_SESSION['sessionName'] = $sessionVar;

Then you can destroy the session with, session_destroy();

See more here.

于 2013-08-17T02:36:20.283 回答
0

在 PHP 代码中,您可以像这样使用 PHP 会话变量:

$_SESSION['saveMe'] = $saveMe;

然后稍后,即使在刷新之后,通过使用 php 中的 session 变量来获取它,就像您通常使用任何变量一样。

欲了解更多信息,请参阅http://www.w3schools.com/php/php_sessions.asp

于 2013-08-17T02:28:58.753 回答
0

为什么将它发送到 PHP ?
仅使用 cookie 保存在客户端会更好,并使用 $_COOKIE 在 PHP 中访问

从以下位置下载 jQuery.cookie:

carhartl/jquery-cookie 并执行:

$('.save').click(function () { 
// save data from textarea to cookie
var data = $.trim($('#subtext').val());
$.cookie('TEXTAREA_VALUE', data);
});

并通过 PHP 阅读:

<?php
echo $_COOKIE['TEXTAREA_VALUE'];
?>

并删除:

$.removeCookie('TEXTAREA_VALUE', { path: '/' });

好的朋友!

于 2013-08-17T04:51:55.843 回答
0

Ajax 主要用于在不重新加载网页的情况下发送数据 - 从客户端(js)到服务器端(php)或从服务器端(php)到客户端(js)。确保在 textarea 中给出了 name-attribute 并且该方法设置为在表单中发布。如果我正确理解您的问题,您可以执行以下操作:

<?php
session_start();

if (isset($_POST['subtext'])) {
    $_SESSION['subtext_value'] = $_POST['subtext'];
}
if (isset($_SESSION['subtext_value'])) {
    $subtextValue = $_SESSION['subtext_value'];
}
else {
    $subtextValue = '';
}
?>
<html>
<body>
<form action="/mininote/system/data.php" method="post">
<textarea id="subtext" name="subtext"><?php echo $subtextValue;?></textarea>
<input type="submit" value="ok" />
</form>
</body>
</html>
于 2013-08-17T05:05:18.313 回答