使用会话数组按下按钮后添加到数组

时间:2018-01-06 15:26:37

标签: php arrays

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/redColorPrimary</item>
    <item name="colorPrimaryDark">@color/redColorPrimaryDark</item>
    <item name="colorAccent">@color/redColorAccent</item>
    <item name="android:statusBarColor">@color/redColorPrimaryDark</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

我正在尝试这样做,以便当我在输入字段中键入水果并按下按钮时,它将被推送到数组,以使这项工作,我尝试使用会话。不幸的是它不起作用,上面是我试过的

3 个答案:

答案 0 :(得分:0)

你需要:

  • 检测会话变量何时尚不存在然后初始化
  • 在结束脚本
  • 之前将所有更改保存回会话变量

以下是建议的代码:

session_start();

// first time initialisation
if (!isset($_SESSION['fruit'])) $_SESSION['fruit'] = array("Pear", "Apple", "Orange");

// get current list from session
$fruit = $_SESSION['fruit'];

// add new fruit if provided, and update session variable as well
if(isset($_POST['add'])) {
    array_push($fruit, $_POST['fruit']);
    $_SESSION['fruit'] = $fruit;
} 

现在确保在浏览器中输出新列表。因此,将输出代码移出if块,如下所示:

if(isset($_POST['sort'])) {
    sort($fruit);
}

if(isset($_POST['shuffle'])) {
    shuffle($fruit);
}
// Always output
foreach ($fruit as $key => $val) {
    echo "- " .  $val . "<br />" . "\n";
}

这是完整的代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>13.15</title>
  </head>
  <body>
      <form method="post">
         fruit: <input type="text" name="fruit"><br><br>
         <input type="submit" name="add" value="add"><br><br>
         -------------------------<br><br>
         <input type="submit" name="sort" value="sort"> 
         <input type="submit" name="shuffle" value="'shuffle'"><br><br>
         -------------------------
         <br><br>
      </form>
<?php

session_start();

// first time initialisation
if (!isset($_SESSION['fruit'])) $_SESSION['fruit'] = array("Pear", "Apple", "Orange");

// get current list from session
$fruit = $_SESSION['fruit'];

// add new fruit if provided, and update session variable as well
if(isset($_POST['add'])) {
    array_push($fruit, $_POST['fruit']);
    $_SESSION['fruit'] = $fruit;
} 

if(isset($_POST['sort'])) {
    sort($fruit);
}

if(isset($_POST['shuffle'])) {
    shuffle($fruit);
}
// Always output
foreach ($fruit as $key => $val) {
    echo "- " .  $val . "<br />" . "\n";
}

?>
</body>
</html>

答案 1 :(得分:0)

<?php
error_reporting(E_ALL);
$output='';
session_start();
if(isset($_SESSION['fruits'])){
    $fruits=unserialize(stripslashes($_SESSION['fruits']));
    if (!is_array($fruits)) {
        // something went WRONG - initialize to custom array
        $fruits = array("Pear", "Apple", "Orange");
    }
}//at this point you have the last session to an array

if(isset($_POST['add']))
{
    $txt=$_POST['fruit'];
    if(!empty($txt)) array_push($fruits, $txt);
}

if(isset($_POST['sort']))
{
sort($fruits);

}

if(isset($_POST['shuffle']))
{
shuffle($fruits);

}

/*at this point even add/sort or shuffle the final
array you should store it for the next session*/
if(isset($fruits)){
    $_SESSION['fruits']=serialize($fruits);

    /* you should center here an content for later output*/
    foreach ($fruits as $key => $val) {
        $output.= "- " .  $val . "<br />" . "\n";
    }
}
/* 
you should NOT send content when you store sessions cookies
see? no blank or chars here-> <?php
neither ->X  ?>X<!DOCTYPE html>
|
|
__     */
?><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>13.15</title>
  </head>
  <body>
      <form method="post">
         fruit: <input type="text" name="fruit"><br><br>
         <input type="submit" name="add" value="add"><br><br>
         -------------------------<br><br>
         <input type="submit" name="sort" value="sort"> <input type="submit" name="shuffle" value="'shuffle'"><br><br>
         -------------------------
         <br><br>
      </form>
<?php

echo($output);
phpinfo();
?>

</body>
</html>

答案 2 :(得分:0)

您要做的是使用$('#districts_id,#tehsils_id,#projects_id,#centers_id,#schools_id').on('change', function() { //alert($("#districts_id option:selected").attr("title")); //var parameters = {}; var parameters; var url; if($('#schools_id').val()) { $("#users_id").removeAttr('disabled'); //parameters = JSON.stringify({schools_centers_id:$('#centers_id').val()}); parameters = {"users_schools_id": $('#schools_id').val(), users_gender: $('#gender').val()}; url = "<?php echo base_url();?>/BtaAdministratorUnionMembers/get_teachers_users_by_school_id"; } else if($('#centers_id').val()) { $("#schools_id").removeAttr('disabled'); //parameters = JSON.stringify({schools_centers_id:$('#centers_id').val()}); parameters = {"schools_centers_id": $('#centers_id').val()}; url = "<?php echo base_url();?>/BtaAdministratorUsers/get_schools_by_center_id"; } else if($('#projects_id').val()) { $("#centers_id").removeAttr('disabled'); //parameters = JSON.stringify({centers_probject_id:$('#projects_id').val()}); parameters = {"centers_probject_id": $('#projects_id').val()}; url = "<?php echo base_url();?>/BtaAdministratorUsers/get_centers_by_project_id"; } else if($("#tehsils_id option:selected").attr("title") == 'tehsils_id')//($('#tehsils_id').val()) { $("#projects_id").removeAttr('disabled'); //parameters = JSON.stringify({projects_tehsil_id:$('#tehsils_id').val()}); parameters = {"projects_tehsil_id": $('#tehsils_id').val()}; url = "<?php echo base_url();?>/BtaAdministratorUsers/get_projects_by_tehsil_id"; //alert(parameters + ' '+ url); } else if($("#districts_id option:selected").attr("title") == 'districts_id')//($('#districts_id').val()) { $("#tehsils_id").removeAttr('disabled'); //$("#tehsils_id").empty(); //parameters = JSON.stringify({tehsils_districts_id:$('#districts_id').val()}); parameters = {"tehsils_districts_id": $('#districts_id').val()}; url = "<?php echo base_url();?>/BtaAdministratorUsers/get_tehsils_by_districts_id"; //alert(parameters + ' '+ url); } $.ajax({ type: "GET", url: url, data:parameters, //contentType: "application/json;charset=utf-8", dataType: 'json', success: function(data){ //alert(data); //alert(JSON.stringify(data)); if($('#schools_id').val()) { //alert(JSON.stringify(data)); $('#users_id').empty(); $('#users_id').append("<option value=''>Select Teacher....</option>"); $.each(data,function(key,value){ $('#users_id').append('<option value="'+value.users_id+'">'+value.users_firstname_users_lastname+'</option>'); }); } else if($('#centers_id').val()) { //alert(JSON.stringify(data)); $('#schools_id').empty(); $('#schools_id').append("<option value=''>Select School....</option>"); $.each(data,function(key,value){ $('#schools_id').append('<option value="'+value.schools_id+'">'+value.schools_name+'</option>'); }); } else if($('#projects_id').val()) { //alert(JSON.stringify(data)); $('#centers_id').empty(); $('#centers_id').append("<option value=''>Select Center....</option>"); $.each(data,function(key,value){ $('#centers_id').append('<option value="'+value.centers_id+'">'+value.centers_schoolName+'</option>'); }); } else if($("#tehsils_id option:selected").attr("title") == 'tehsils_id')//($('#tehsils_id').val()) { //alert(JSON.stringify(data)); $('#projects_id').empty(); $('#projects_id').append("<option value=''>Select Project....</option>"); $.each(data,function(key,value){ $('#projects_id').append('<option value="'+value.projects_id+'">'+value.projects_name+'</option>'); }); } else if($("#districts_id option:selected").attr("title") == 'districts_id')//($('#districts_id').val()) { //clearDropDown($('select'), 5); $('#tehsils_id').empty(); $('#tehsils_id').append("<option value='' title=tehsils_id>Select Tehsils....</option>"); $.each(data,function(key,value){ $('#tehsils_id').append('<option value="'+value.tehsils_id+'" title=tehsils_id>'+value.tehsils_name+'</option>'); }); } }, error: function(data){ alert(JSON.stringify(data)); //console.log(data); } }); }); ,就好像 #include<iostream> using namespace std; int length=10; int arr[]={0,1,2,3,4,5,6,7,8,9}; void infront(int front, int back); int main() { int front,back; //(front infront of back) cout<<"array is: "; for(int i=0; i<length;i++) cout<<arr[i]<<','; cout<<"enter position of front element"; cin>>front; cout<<"Enter position of back element"; cin>>back; infront(front,back); cout<<"array is: "; for(int i=0; i<length;i++) cout<<arr[i]<<','; } void infront(int front, int back) { int temp,i; temp=arr[front]; if(back < front) { for(i=front;i<back-1;i++) { arr[i]=arr[i+1]; } arr[i]=temp; } else { for(i=front;i>back;i--) { arr[i]=arr[i-1]; } arr[i]=temp; } } 一样 要做到这一点,你必须使用一个参考 根据您正在进行的分配,该值只是从一个变量传递到另一个变量

例如

$fruit

值4仅从$_SESSION['fruit']传递到$a = 4; $b = $a; $b = 5; // $a =4, $b = 5 $a中的任何更改都不会反映在$b中,因为它们是2个单独的变量

另一方面,如果您使用引用,则实质上是给变量另一个名称,并且将反映更改

$b

对于您的代码,它可能会产生类似

的内容
$a