Php Javascript:允许用户在提交表单时写入会话,但无需重新加载页面
根据要求,我希望允许用户在提交表单时写入会话,但无需重新加载页面,这是我迄今为止所做的: 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",
$(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,这也不起作用,它似乎没有提交任何东西嗨,这也不起作用,它似乎没有提交任何东西