Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 Javascript:允许用户在提交表单时写入会话,但无需重新加载页面_Php_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Php Javascript:允许用户在提交表单时写入会话,但无需重新加载页面

Php Javascript:允许用户在提交表单时写入会话,但无需重新加载页面,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,根据要求,我希望允许用户在提交表单时写入会话,但无需重新加载页面,这是我迄今为止所做的: Javascript函数: $(function() { $("#body").submit(function(){ var name = $("#player_name").val(); var dataString = 'player_name='+ name alert (dataString);return false; $.ajax({ type: "POST",

根据要求,我希望允许用户在提交表单时写入会话,但无需重新加载页面,这是我迄今为止所做的:

Javascript函数:

$(function() {
$("#body").submit(function(){
var name = $("#player_name").val();
var dataString = 'player_name='+ name
alert (dataString);return false; 
   $.ajax({
      type: "POST",
      url: "session_update.php",
      data: dataString,
      success: function(){
        $('#body').html("<div id='message'></div>");  
        $('#message').html("<h2>Logged in!</h2>");
      });
   }
});
   return false;
});
我正在尝试提交的表格:

    <div class="body">
<div class="home" id="home" style="width:100%">
    <form action="" name="login">
    USERNAME: <input type="text" id="player_name" name="player_name"/>
          <br>
      <input type="submit" name="submit" class="button" id="submit_btn" value="Send" />
         </form>
<? echo "value=". $_SESSION['player_name'];?>
</div>
php文件正在将数据发送到:

<?php
start_session();
$_SESSION['player_name']= $_POST["player_name"];
?>
非常感谢您的任何建议,对于编码的这一方面来说是相当新的,所以可能是一些明显的原因导致了它,但我就是看不到

更多信息请告诉我

更新

控制台显示 ?player_name=User&send:75

您需要使用session_start;不启动会话

始终确保手动测试PHP脚本,而不仅仅是使用ajax指向页面。去看看它,确保它能工作-

如果假设启用了error_reporting(错误报告),则您将收到一个错误,说明您正在尝试调用未定义的函数

更新

除了session_start问题外,代码中还可能存在其他问题

第一步是使用任一控制台进行调试;或者提醒“你好”。将这些操作绑定到表单提交事件,这将告诉您是否正在调用提交函数

完成此操作后,可以继续调试其余部分:-

更新2

通过查看jQuery,可以看出您将提交事件附加到DOM中的错误元素。您需要将其附加到表单,而不是div。如下所示:

$(function() {
    $("#form").submit(function(){
        var name = $("#player_name").val();
        var dataString = 'player_name='+ name
        $.ajax({
          type: "POST",
          url: "session_update.php",
          data: dataString,
          success: function(){
            $('#body').html("<div id='message'></div>");  
            $('#message').html("<h2>Logged in!</h2>");
          });
        }
    });
});

提示:使用CSS分隔元素,不要使用br标记。我的意见是:-

您需要使用session\u start;不启动会话

始终确保手动测试PHP脚本,而不仅仅是使用ajax指向页面。去看看它,确保它能工作-

如果假设启用了error_reporting(错误报告),则您将收到一个错误,说明您正在尝试调用未定义的函数

更新

除了session_start问题外,代码中还可能存在其他问题

第一步是使用任一控制台进行调试;或者提醒“你好”。将这些操作绑定到表单提交事件,这将告诉您是否正在调用提交函数

完成此操作后,可以继续调试其余部分:-

更新2

通过查看jQuery,可以看出您将提交事件附加到DOM中的错误元素。您需要将其附加到表单,而不是div。如下所示:

$(function() {
    $("#form").submit(function(){
        var name = $("#player_name").val();
        var dataString = 'player_name='+ name
        $.ajax({
          type: "POST",
          url: "session_update.php",
          data: dataString,
          success: function(){
            $('#body').html("<div id='message'></div>");  
            $('#message').html("<h2>Logged in!</h2>");
          });
        }
    });
});


提示:使用CSS分隔元素,不要使用br标记。只是我的意见:-

如果您不想提交表格:

将提交按钮的type=submit更改为type=button。 将session_update.php页面的AJAX调用绑定到submit_btn click事件。
如果您不想提交表格:

将提交按钮的type=submit更改为type=button。 将session_update.php页面的AJAX调用绑定到submit_btn click事件。
你能试试这个吗。我认为问题在于你的点击事件

$(function() {

    $("#submit_btn").click(function(){
    var name = $("#player_name").val();
    var dataString = 'player_name='+ name
    alert (dataString);return false; 
           $.ajax({
              type: "POST",
              url: "session_update.php",
              data: dataString,
              success: function(){
                $('#body').html("<div id='message'></div>");  
                $('#message').html("<h2>Logged in!</h2>");
              });
           }
    });

});

你能试试这个吗。我认为问题在于你的点击事件

$(function() {

    $("#submit_btn").click(function(){
    var name = $("#player_name").val();
    var dataString = 'player_name='+ name
    alert (dataString);return false; 
           $.ajax({
              type: "POST",
              url: "session_update.php",
              data: dataString,
              success: function(){
                $('#body').html("<div id='message'></div>");  
                $('#message').html("<h2>Logged in!</h2>");
              });
           }
    });

});

您将事件附加到错误的元素

在js中更改

$body.submitfunction{

$myform.submitfunction{

在html中

您还有几个语法错误,请在此处修复:

$(function() {
$("#myform").submit(function(){
var name = $("#player_name").val();
var dataString = 'player_name='+ name;
alert (dataString);
   $.ajax({
      type: "POST",
      url: "session_update.php",
      data: {player_name: name},
      success: function(){
        $('body').append("<div id='message'></div>");  
        $('#message').html("<h2>Logged in!</h2>");
      }//here was )
   });
     return false;
});//  |
  //   \/return was here
});​

主要提示-使用开发控制台按F12调试代码

将事件附加到不正确的元素

在js中更改

$body.submitfunction{

$myform.submitfunction{

在html中

您还有几个语法错误,请在此处修复:

$(function() {
$("#myform").submit(function(){
var name = $("#player_name").val();
var dataString = 'player_name='+ name;
alert (dataString);
   $.ajax({
      type: "POST",
      url: "session_update.php",
      data: {player_name: name},
      success: function(){
        $('body').append("<div id='message'></div>");  
        $('#message').html("<h2>Logged in!</h2>");
      }//here was )
   });
     return false;
});//  |
  //   \/return was here
});​

主要提示-使用开发控制台按F12调试代码

当前结果是什么?使用数据字符串而不是数据的原因是什么:{player_name:name}?当我按下submit按钮时,没有发生任何事情,就像它甚至没有运行functionUPDATE:Console在单击submit时显示:未捕获语法错误:意外标记/?player\u name=User:39资源被解释为脚本,但使用MIME类型text/html传输:。currect result是什么?使用数据的原因是什么:dataString inst数据读取:{player_name:name}?当我按下提交按钮时,没有发生任何事情,就像它甚至没有运行函数更新:控制台在单击提交时显示:未捕获语法错误:意外标记/?player\u name=User:39资源被解释为脚本,但使用MIME类型text/html传输:。嗨,我更改了这个,但我仍然没有从中获得结果?@Scott Okay,第一期已排序。我将进一步研究:-@Scott要做的第一件事是调试代码,您需要检查控制台以确保调用ajax并且没有错误。我在哪里可以找到控制台?我使用000webhost,似乎找不到它,我在.php文件中放置了一个警报,但没有调用,js scri中的警报pt也没有得到批准called@Scott不要把它放在桌子上
在PHP文件中,alert是一个javascript函数:-控制台在您的浏览器中,您使用的浏览器是什么?您好,我更改了这个,但仍然没有得到结果?@Scott好的,第一个问题已排序。我将进一步研究:-@Scott要做的第一件事是调试代码,您需要检查控制台以确保调用ajax并且没有错误。我在哪里可以找到控制台?我正在使用000webhost,似乎找不到它,我在.php文件中放了一个警报,但没有调用它,js脚本中的警报也没有被调用called@Scott不要在PHP文件中添加警报,警报是一个javascript函数:-控制台在您的浏览器中,您使用的浏览器是什么?您好,我已经更改了这些,结果仍然相同,已经尝试了更新的代码,但仍然没有成功,请查看工作示例及其在控制台中抛出的以下内容:UncaughtTypeError:Property'alert'of object[object DOMWindow]不是一个函数-extension://cfhdojbkjhnklbpkdaibdccddilifddb/contentScript1.js:62Uncaught TypeError:无法调用undefined的方法'addListener',您能解释一下吗?您好,我已经更改了这些,结果仍然相同,我已经尝试了更新的代码,但仍然没有成功,查看了工作示例及其在控制台中抛出的以下内容:UncaughtTypeError:object[object DOMWindow]的属性“alert”不是一个函数-extension://cfhdojbkjhnklbpkdaibdccddilifddb/contentScript1.js:62Uncaught TypeError:无法调用undefined的方法“addListener”你能解释一下吗?修复了下面的问题,仍然没有更改修复了下面的问题,仍然没有更改Hi,这也不起作用,它似乎没有提交任何东西嗨,这也不起作用,它似乎没有提交任何东西