Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AJAX问题自动保存_Php_Ajax - Fatal编程技术网

Php AJAX问题自动保存

Php AJAX问题自动保存,php,ajax,Php,Ajax,我正在练习ajax。我不知道该怎么做,或者怎么做。这是我第一次这样做。这是我的密码 <?php function save() { // mysql connection $text = $_POST['name']; // insert query } ?> <input type="text" name="name" onchange="<?php save() ?>" value="default"> 我不知道你是否应该这样存钱 您

我正在练习ajax。我不知道该怎么做,或者怎么做。这是我第一次这样做。这是我的密码

<?php
function save() {
  // mysql connection

  $text = $_POST['name'];

  // insert query
}
?>

<input type="text" name="name" onchange="<?php save() ?>" value="default">


我不知道你是否应该这样存钱

您可能需要事件
onblur()
,或者更好的方法是,通过JavaScript添加事件,不要使用内联属性

但最大的问题是您试图从JavaScript调用PHP函数。JavaScript不能像那样与PHP交互。考虑客户机/服务器关系以及代码运行的位置


您需要调用一个JavaScript函数,该函数发送输入的
值,然后PHP可以使用该值写入您的数据库。

我不知道您是否应该这样保存

您可能需要事件
onblur()
,或者更好的方法是,通过JavaScript添加事件,不要使用内联属性

但最大的问题是您试图从JavaScript调用PHP函数。JavaScript不能像那样与PHP交互。考虑客户机/服务器关系以及代码运行的位置


您需要调用一个JavaScript函数,该函数发送输入的
值,然后PHP可以使用该值写入您的数据库。

简短回答:您不能从JavaScript调用PHP函数,因此您尝试的方法不起作用

详细回答:您需要找到AJAX简介并学习它。为了完成您描述的任务,您需要:

  • 在JavaScript中实例化
    XMLHttpRequest
    对象
  • 告诉它在服务器将调用PHP脚本的某个URL处与服务器联系
  • 告诉它通过POST发送所有必要的信息(特别是用户键入的文本)
  • 编写PHP脚本时,它将保存文本并返回类似
    true
    /
    false
    的内容,以指示成功/失败
  • 回到JavaScript中,根据响应是否成功,在响应到来时处理响应,例如显示一条消息,称为“消息已保存”或“消息无法保存:(错误消息)”

简短回答:您无法从JavaScript调用PHP函数,因此您尝试的方式无法工作

详细回答:您需要找到AJAX简介并学习它。为了完成您描述的任务,您需要:

  • 在JavaScript中实例化
    XMLHttpRequest
    对象
  • 告诉它在服务器将调用PHP脚本的某个URL处与服务器联系
  • 告诉它通过POST发送所有必要的信息(特别是用户键入的文本)
  • 编写PHP脚本时,它将保存文本并返回类似
    true
    /
    false
    的内容,以指示成功/失败
  • 回到JavaScript中,根据响应是否成功,在响应到来时处理响应,例如显示一条消息,称为“消息已保存”或“消息无法保存:(错误消息)”

    • 我认为您需要首先了解AJAX的概念

      试试这个。

      给你一个简单的想法; 假设有一个虚构的
      标记
      ,其中包含一个要提交的方法、操作和数据。在您的情况下,输入的onchange事件触发此
      的“提交”,假设您已经设置了要提交的数据的值。发生这种情况时,页面不会刷新或重定向。相反,javascript创建了一个“单独的进程线程”,就像
      在不同的“窗口”中提交一样。因此,术语“异步”


      AJAX更像是一种Javascript。我认为您需要首先了解AJAX的概念

      试试这个。

      给你一个简单的想法; 假设有一个虚构的
      标记
      ,其中包含一个要提交的方法、操作和数据。在您的情况下,输入的onchange事件触发此
      的“提交”,假设您已经设置了要提交的数据的值。发生这种情况时,页面不会刷新或重定向。相反,javascript创建了一个“单独的进程线程”,就像
      在不同的“窗口”中提交一样。因此,术语“异步”


      AJAX更像是一种Javascript。有多种方法可以创建AJAX调用。最简单的方法是使用Javascript框架,如或。Ajax就是这样简单的。在这里检查Mootools演示和jquery

      逻辑很简单。将事件添加到文本框以在值更改时保存该框。您的事件函数将生成Ajax请求并将其发送到服务器,接收响应,您可以使用该响应让用户知道保存事件的状态(如果您选择)

      这是我为你们写的一篇简短的文章,也许能帮助你们理解。将需要包括Mootools库。可能有bug,但Ajax调用的概念已经存在。page=
      index.php

      <?php
      //  PHP before anything else...
      //
      //  Check to see if task is specified and need to save changes
      if (isset($_POST['task']) && $_POST['task'] == 'save') {
          // mysql connection
          $text = $_POST['name'];
          // insert query
          $isSuccess = 'Status of SAVING CHANGES';
      
          //  Output... output will be used by 'update' to set value of <div id="log">...</div>
          //  so user knows what is happening
          echo $isSuccess ? 'Successfully Saved' : 'Failed to Save';
          exit();
      }
      ?>
      <html>
          <head>
              <!--    NEED TO INCLUDE MOOTOOLS LIBRARY -->
              <script type="text/javascript">
                  window.addEvent('domready', function(){
                      $('name').addEvent('blur', saveChanges);
      
                      /**
                       * Generates request and saves changes
                       */
                      function saveChanges(){
      
                          //  URL which will be called
                          var url = "index.php";
      
                          //  New Ajex request. Note that it will be sent because of .request() at the end
                          new Ajax(url, {
                              //  Method : post/get
                              method: 'post',
      
                              //  Data to be passed 
                              data :{
                                  name : $('name').value,
                                  task : 'save'
                              },
      
                              //  Output of the AJAX will be set to this element
                              update: $('log')
      
                          }).request();
                      }
                  });
              </script>
      
          </head>
          <body>
              <form action="index.php" onsubmit="return false">
                  <div id="log"></div>
                  <!-- SOME CONTENT ... -->
                  <input type="text" name="name" id="name" value="">
              </form>
          </body>
      </html>
      
      
      addEvent('domready',function(){
      $('name').addEvent('blur',saveChanges);
      /**
      *生成请求并保存更改
      */
      函数saveChanges(){
      //将被调用的URL
      var url=“index.php”;
      //新的Ajex请求。请注意,由于结尾处的.request()将发送该请求
      新Ajax(url{
      //方法:post/get
      方法:“post”,
      //要传递的数据
      数据:{
      名称:$('name')。值,
      任务:“保存”
      },
      //AJAX的输出将被设置为此元素
      更新:$(“日志”)
      }).request();
      }
      });