js傳遞字符串數組到php,js怎麼傳遞數組至後端

本文目錄一覽:

關於 JS給PHP傳遞數組的問題!

你好,很高興為你解答:

你大可換做對象賦值方式,如:

info[‘aa’] = ‘a’;

info[‘bb’] = ‘b’;

換成

info.aa = “數值”;

info.bb = “數值”;

形式

如有你問可繼續追加。

如何把JS獲取的數據傳遞給php

方法1 js的location 或 document 的url傳值

方法2 js的submit提交

方法3 js的ajax

數據可以是簡單的字符串 也可以是 json格式或 xml等

js到底如何將一堆數組通過post的方法發送給php

準備數據庫

本例我們使用Mysql數據庫,創建一張user表,表結構如下:

CREATE TABLE `user` (

`id` int(11) NOT NULL auto_increment,

`username` varchar(30) NOT NULL COMMENT ‘用戶名’,

`password` varchar(32) NOT NULL COMMENT ‘密碼’,

`login_time` int(10) default NULL COMMENT ‘登錄時間’,

`login_ip` varchar(32) default NULL COMMENT ‘登錄IP’,

`login_counts` int(10) NOT NULL default ‘0’ COMMENT ‘登錄次數’,

PRIMARY KEY  (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

然後往user表中插入一條用戶信息數據:

INSERT INTO `user` (`id`, `username`, `password`, `login_time`, `login_ip`, `login_counts`)

VALUES(1, ‘demo’, ‘fe01ce2a7fbac8fafaed7c982a04e229’, ”, ”, 0);

index.php

用戶在輸入用戶名和密碼後,提示用戶登錄成功,並顯示相關登錄信息,如果點擊“退出”,則退出到用戶登錄界面。

進入index.php,如果用戶已登錄則顯示登錄信息,如果未登錄則顯示登錄框要求用戶登錄。

div id=”login”

h3用戶登錄/h3

?php

if(isset($_SESSION[‘user’])){  ?

div id=”result”

pstrong?php echo $_SESSION[‘user’];?/strong,恭喜您登錄成功!/p

p您這是第span?php echo $_SESSION[‘login_counts’];?/span次登錄本站。/p

p上次登陸本站的時間是:span?php echo date(‘Y-m-d H:i:s’,$_SESSION[‘login_time’]);?/span/ppa href=’#’ id=’logout’【退出】/a/p

/div

?php }else{?

div id=”login_form”

plabel用戶名:/label input type=”text” class=”input” name=”user” id=”user” //p

plabel密 碼:/label input type=”password” class=”input” name=”pass” id=”pass” //p

div class=”sub”

input type=”submit” class=”btn” value=”登 錄” /

/div

/div

?php }?/div

注意在index.php文件頭應該加上語句:session_start; 同時在head部分引入jquery庫,以及包含global.js,您還可以為登錄框寫個漂亮的CSS樣式,當然本例已經略微寫了個簡單的樣式,請查看源碼。

script type=”text/javascript” src=”js/jquery.js”/scriptscript type=”text/javascript” src=”js/global.js”/script

global.js

global.js文件包括了將要實現的jquery代碼。首先要做的就是讓輸入框獲得焦點,像百度和google那樣一打開,鼠標光標就在輸入框內。使用代碼如下:

$(function(){

$(“#user”).focus();

});

接着要做的就是,當輸入框獲得和失去焦點時,分別呈現不同的樣式,比如本例中使用不同的邊框顏色,代碼如下:

$(“input:text,textarea,input:password”).focus(function() {

$(this).addClass(“cur_select”);

});

$(“input:text,textarea,input:password”).blur(function() {

$(this).removeClass(“cur_select”);

});

用戶登錄:用戶點擊登錄按鈕後,首先要驗證用戶的輸入不能為空,然後向後台login.php發送一個Ajax請求。當後台驗證登錄成功後,返回登錄用戶信息:如用戶登錄次數和上次登錄時間等;如果登錄失敗,則返回登錄失敗信息。

$(“.btn”).live(‘click’,function(){ var user = $(“#user”).val(); var pass = $(“#pass”).val(); if(user==””){

$(‘div id=”msg” /’).html(“用戶名不能為空!”).appendTo(‘.sub’).fadeOut(2000);

$(“#user”).focus(); return false;

} if(pass==””){

$(‘div id=”msg” /’).html(“密碼不能為空!”).appendTo(‘.sub’).fadeOut(2000);

$(“#pass”).focus(); return false;

}

$.ajax({ type: “POST”, url: “login.php?action=login”, dataType: “json”, data: {“user”:user,”pass”:pass}, beforeSend: function(){

$(‘div id=”msg” /’).addClass(“loading”).html(“正在登錄…”).css(“color”,”#999″)

.appendTo(‘.sub’);

}, success: function(json){ if(json.success==1){

$(“#login_form”).remove(); var div = “div id=’result’pstrong”+json.user+”/strong,恭喜您登錄成功!/p

p您這是第span”+json.login_counts+”/span次登錄本站。/p

p上次登錄本站的時間是:span”+json.login_time+”/span/pp

a href=’#’ id=’logout’【退出】/a/p/div”;

$(“#login”).append(div);

}else{

$(“#msg”).remove();

$(‘div id=”errmsg” /’).html(json.msg).css(“color”,”#999″).appendTo(‘.sub’)

.fadeOut(2000); return false;

}

}

});

});

我在進行Ajax請求時,數據傳輸格式使用的是json,返回的數據也是json數據,使用JS將json數據解析,得到登錄後的用戶信息,然後通過append追加到#login元素下,完成登錄操作。

用戶退出:當點擊“退出”時,向login.php發送一個Ajax請求,後台註銷所有Session,頁面重新回到登錄界面。

$(“#logout”).live(‘click’,function(){

$.post(“login.php?action=logout”,function(msg){ if(msg==1){

$(“#result”).remove(); var div = “div id=’login_form’plabel用戶名:/label

input type=’text’ class=’input’ name=’user’ id=’user’ //p

plabel密 碼:/label input type=’password’ class=’input’ name=’pass’

id=’pass’ //p

div class=’sub’input type=’submit’ class=’btn’ value=’登 錄’ //div

/div”;

$(“#login”).append(div);

}

});

});

login.php

根據前台提交的請求,登錄時,獲取用戶輸入的用戶名和密碼,並與數據庫中對應的用戶名和密碼進行比對,如果比對成功,則將新的更新該用戶登錄信息,並組裝json數據傳給前台。

session_start();require_once (‘connect.php’);

$action = $_GET[‘action’];if ($action == ‘login’) {  //登錄

$user = stripslashes(trim($_POST[‘user’]));

$pass = stripslashes(trim($_POST[‘pass’])); if (empty ($user)) { echo ‘用戶名不能為空’; exit;

} if (empty ($pass)) { echo ‘密碼不能為空’; exit;

}

$md5pass = md5($pass); //密碼使用md5加密

$query = mysql_query(“select * from user where username=’$user'”);

$us = is_array($row = mysql_fetch_array($query));

$ps = $us ? $md5pass == $row[‘password’] : FALSE; if ($ps) {

$counts = $row[‘login_counts’] + 1;

$_SESSION[‘user’] = $row[‘username’];

$_SESSION[‘login_time’] = $row[‘login_time’];

$_SESSION[‘login_counts’] = $counts;

$ip = get_client_ip(); //獲取登錄IP

$logintime = mktime();

$rs = mysql_query(“update user set login_time=’$logintime’,login_ip=’$ip’,

login_counts=’$counts'”); if ($rs) {

$arr[‘success’] = 1;

$arr[‘msg’] = ‘登錄成功!’;

$arr[‘user’] = $_SESSION[‘user’];

$arr[‘login_time’] = date(‘Y-m-d H:i:s’,$_SESSION[‘login_time’]);

$arr[‘login_counts’] = $_SESSION[‘login_counts’];

} else {

$arr[‘success’] = 0;

$arr[‘msg’] = ‘登錄失敗’;

}

} else {

$arr[‘success’] = 0;

$arr[‘msg’] = ‘用戶名或密碼錯誤!’;

} echo json_encode($arr); //輸出json數據}elseif ($action == ‘logout’) {  //退出

unset($_SESSION);

session_destroy(); echo ‘1’;

}

當前台請求退出時,只需註銷session就可以,並返回1給前台JS處理。

怎樣把js中的數組提交到php中

php端有3個變量接收客戶端的請求數據

$_REQUEST 包含get和post的數據

$_POST post的數據

$_GET get的數據

這三個變量都是數組, 直接用php獲取數組元素的方法就能獲取數據, 鍵名就是客戶端發送請求的變量名

怎樣提交JS數組給PHP

JS裡面使用join把數組轉換為字符串傳遞給PHP,PHP再使用explode把獲取的字符串轉換為數組,例如:

調用的JS:

script type=”text/javascript”

var oCC=new TClientCheck();

var str=oCC.join(‘|’);

location.href=’but.php?str=’+str;

/script

處理的PHP:

?php

$str=$_GET[“str”];

$oCC=explode(‘|’, $str);

print_r($oCC);

?

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243789.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:58
下一篇 2024-12-12 12:58

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python中將字符串轉化為浮點數

    本文將介紹在Python中將字符串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字符串轉化為…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29

發表回復

登錄後才能評論