PHP表单按钮提交会话并更改文本onclick
我想使用提交类型按钮更改会话值和PHP表单按钮提交会话并更改文本onclick,php,jquery,session,submit,Php,Jquery,Session,Submit,我想使用提交类型按钮更改会话值和文本。 但是,会话确实更改了,但文本没有更改。 以下是正文中的PHP代码。 <?php if (isset($_POST['lang']) == true && !empty($_POST['lang'])) { $_SESSION["language"]=$_POST['lang']; } ?> <p>My Name is Khan</p> <form action="<?php
文本。
但是,会话确实更改了,但文本没有更改。以下是正文中的PHP代码。
<?php
if (isset($_POST['lang']) == true && !empty($_POST['lang'])) {
$_SESSION["language"]=$_POST['lang'];
}
?>
<p>My Name is Khan</p>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<button type="submit" name="lang" value="jpn" id="jpn">日本語</button>
<button type="submit" name="lang" value="eng" id="eng">English</button>
</form>
当我单击日语按钮时,文本会变为flash,但会变回原来的文本。我怎样才能解决这个问题?
谢谢。问题是您还提交了表单,如果您不想重新加载页面,它会重新加载页面添加
preventDefault()
-它不会提交表单
$(document).ready(function(){
$("#jpn").on('click', function(e){
e.preventDefault();
$("p").text("私の名前はハーンです");
});
$("#eng").on('click', function(e){
e.preventDefault();
$("p").text("My name is Khan");
});
});
但若您需要重新加载页面以设置会话,则需要使用php更改段落中的文本:
<?php
if (isset($_POST['lang']) == true && !empty($_POST['lang'])) {
$_SESSION["language"]=$_POST['lang'];
if($_POST['lang'] == 'jpn'){
echo '<p>私の名前はハーンです</p>';
}else{
echo '<p>My Name is Khan</p>';
}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<button type="submit" name="lang" value="jpn" id="jpn">日本語</button>
<button type="submit" name="lang" value="eng" id="eng">English</button>
</form>
问题是您还提交了表单,如果您不想重新加载页面,它会重新加载页面添加preventDefault()
——它不会提交表单
$(document).ready(function(){
$("#jpn").on('click', function(e){
e.preventDefault();
$("p").text("私の名前はハーンです");
});
$("#eng").on('click', function(e){
e.preventDefault();
$("p").text("My name is Khan");
});
});
但若您需要重新加载页面以设置会话,则需要使用php更改段落中的文本:
<?php
if (isset($_POST['lang']) == true && !empty($_POST['lang'])) {
$_SESSION["language"]=$_POST['lang'];
if($_POST['lang'] == 'jpn'){
echo '<p>私の名前はハーンです</p>';
}else{
echo '<p>My Name is Khan</p>';
}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<button type="submit" name="lang" value="jpn" id="jpn">日本語</button>
<button type="submit" name="lang" value="eng" id="eng">English</button>
</form>
$(文档).ready(函数(){
$(“#jpn”)。在('click',function()上{
$(p)文本私の名前はハーンです");
});
$(“#eng”)。在('click',function(){
$文本(“我的名字是汗”);
});
});
我叫汗
$(文档).ready(函数(){
$(“#jpn”)。在('click',function()上{
$(p)文本私の名前はハーンです");
});
$(“#eng”)。在('click',function(){
$文本(“我的名字是汗”);
});
});
我叫汗
1.)php的isset
返回一个布尔值,无需检查==true
if( isset($_POST['lang']) && !empty($_POST['lang']) )
$_SESSION["language"] = $_POST['lang'];
2.)如果要将表单发布到同一文档中,也可以将表单的操作保持为空
<form action="" method="post">
</form>
或作为完整的,如果
:
if( $_SESSION["lang"] == "jpn" )
echo "<p>私の名前はハーンです</p>";
else
echo "<p>My name is Khan</p>";
if($\u会话[“lang”]=“jpn”)
回声“私の名前はハーンです “;
其他的
echo“我的名字叫Khan”;
1。)php的isset
返回一个布尔值,无需检查==true
if( isset($_POST['lang']) && !empty($_POST['lang']) )
$_SESSION["language"] = $_POST['lang'];
2.)如果要将表单发布到同一文档中,也可以将表单的操作保持为空
<form action="" method="post">
</form>
或作为完整的,如果
:
if( $_SESSION["lang"] == "jpn" )
echo "<p>私の名前はハーンです</p>";
else
echo "<p>My name is Khan</p>";
if($\u会话[“lang”]=“jpn”)
回声“私の名前はハーンです “;
其他的
echo“我的名字叫Khan”;
只需将此条件放入标记中
只需将此条件放在标签中,这是因为表单操作与刷新一起进行。您需要通过js事件来防止
$(document).ready(function(){
$("form").on('click','#jpn', function(e){
e.preventDefault();
$("p").text("私の名前はハーンです");
});
$("form").on('click','#eng', function(e){
e.preventDefault();
$("p").text("My name is Khan");
});
});
这是因为表单操作将与刷新一起进行。您需要通过js事件防止
$(document).ready(function(){
$("form").on('click','#jpn', function(e){
e.preventDefault();
$("p").text("私の名前はハーンです");
});
$("form").on('click','#eng', function(e){
e.preventDefault();
$("p").text("My name is Khan");
});
});