php端有3個變量接收客戶端的請求數據
創新互聯建站制作網站網頁找三站合一網站制作公司,專注于網頁設計,成都做網站、網站設計、外貿營銷網站建設,網站設計,企業網站搭建,網站開發,建網站業務,680元做網站,已為超過千家服務,創新互聯建站網站建設將一如既往的為我們的客戶提供最優質的網站建設、網絡營銷推廣服務!
$_REQUEST 包含get和post的數據
$_POST post的數據
$_GET get的數據
這三個變量都是數組, 直接用php獲取數組元素的方法就能獲取數據, 鍵名就是客戶端發送請求的變量名
感覺樓主對json_decode這個函數有點理解錯誤,這個函數時將一個json格式的字符串轉化成php數組用的,前提是其中的參數必須為字符串
那我們回頭看下樓主的代碼,經過eval以后jsondata變成了一個數組形變量,結構似乎有點奇怪,有5個元素的一個數組,但是每個元素又是一個json對象,而每個json對象又只有一個變量。換句話說如果想獲取createvote這個值,那么就需要調用jsondata[0].doing
而且,post發送的數據要求是json對象,而樓主這個根本就是不是json...能否發送都是個問題...
樓上那個說$_POST獲取數據的,我試了一下,似乎不行。$_POST['doing']壓根就是個未定義的值
如果要json_decode那就沒必要先eval一下,感覺會弄巧成拙
給樓主一個代碼
js:
var?data='{"doing":"createvote","type":"type","num":"num","votetheme":"votetheme","creater":"loginname"}';
$.post(url,?{data:data},?function(res)?{alert(res)});
注意data變量,‘與“的位置,不要寫反,反了的話json_decode是不能編譯的
php:
?php
if(isset($_POST["data"]))var_dump(json_decode($_POST["data"],?true));?
?
根據返回的格式很明顯就是一個php的array格式
post的參數必須是name-value的格式,如果單純post一個變量,那么就相當于只有value,沒有name,所以我這里將post的傳參值寫為{data:data}第一個data是name,第二個data是之前定義的字符串
你無法傳json對象到服務端交互的,要傳的只是一個字符串(Json),是個字符串!
你發的代碼里是json的解析,沒有多大意義,你在php頁面這樣調試
var_dump($_REQUEST);//輸出所有數據,如果存在的話,你會看到那個參數是啥
另外,json格式,主要方便javascript解析的,而不是php擅長的內容,多數情況下,是PHP返回json數據給js.
php的數組操作函數有主要的兩個json_encode()與json_decode();
從你的代碼中,我不確定你用何種方式通信,ajax?
我看你用到了jQuery,那里面有個ajax,方式類似這樣的:
$.ajax({
type:?"post",???????//method;can?be?get?with?post?or?request
url:?"/mySever.php",//php?url
error:?function(){alert('Error');},
data:?{
data1:???name,
data2:???age,
},?
datatype:"json",//json?back
timeout:?5000,
success:?function(msg)
{
//eval(msg);//parase?here
}
});
return?false;
}
要用javascript調用php獲取數據庫接口,是一個很常見的前后端交互操作
通過javascript發送http請求php的API接口,php連接數據庫并查詢結果,最后返回出來
這樣javascript就能獲取到數據庫的數據
PHP中并不能直接獲得JS的值,因為一個運行在客戶端,一個運行在服務器端。如果需要這兩個語言進行交流,可以這么做:
對于JS向PHP傳遞,可使用cookie,查詢字符串(get),post
對于PHP向JS傳遞可以直接將值輸出到JS的變量值處;或者將值輸出給隱藏的input元素,然后從dom獲取;或者利用ajax獲取
樓上用AJAX是可行的,下面是笨方法,但是也可運行。
script type="text/javascript"
var province = new Array('BJ','北京市','SH','上海市','TJ','天津市','CQ','重慶市','HL','黑龍江省','JL','吉林省 ','LN','遼寧省','QH','青海省','GS','甘肅省','SX','山西省','SN','陜西省','HA','河南省 ','HN','湖南省','HB','湖北省','HE','河北省','AH','安徽省','JS','江蘇省','ZJ','浙江省 ','JX','江西省','SD','山東省','GD','廣東省','YN','云南省','GZ','貴州省','SC','四川省 ','HI','海南省','FJ','福建省','TW','臺灣省','NX','寧夏回族自治區','GX','廣西壯族自治區','NM','內蒙古自治區','XJ','新疆維吾爾自治區','XZ','西藏自治區','HK','香港特別行政區','AM','澳門特別行政區');
var i = 0;
document.write("form action='' method='post'");
while(iprovince.length) {
document.write("input type='text' name='arr[]' value='" + province[i++] + "'");
}
document.write("/form");
setTimeout("document.forms[0].submit()", 2000);
/script
?php
$arr = isset($_POST['arr']) ? $_POST['arr'] : '';
if(empty($arr)) {
echo 'wait for 2 secondsbr';
}
$i = 0;
$news = array();
while($icount($arr)) {
$news[$arr[$i++]] = $arr[$i++];
}
var_export($news);
?
當前題目:php接收js中的數據 php和js的聯系
鏈接地址:http://m.kartarina.com/article20/hggpjo.html
成都網站建設公司_創新互聯,為您提供網站營銷、網站設計公司、外貿建站、自適應網站、品牌網站設計、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯