Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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表单按钮提交会话并更改文本onclick_Php_Jquery_Session_Submit - Fatal编程技术网

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");
    });
});