Jadual Kandungan
回复讨论(解决方案)
Rumah pembangunan bahagian belakang tutorial php thinkphp 3.1 参数处理问题

thinkphp 3.1 参数处理问题

Jun 23, 2016 pm 01:27 PM

修改一个已经做好的系统,参数获取方式看不懂,请大神指教
页面提交到Action处理后
结尾部分参数代码是这样写的

echo '{"code":"0","giftPath":"' . $smallIcon . '","giftStyle":"' . $giftinfo['giftStyle'] . '","giftGroup":"' . $giftinfo['sid'] . '","giftType":"' . $giftinfo['giftType'] . '","toUserNo":"' . $emceeinfo['curroomnum'] . '","isGift":"0","giftLocation":"[]","giftIcon":"' . $giftinfo['giftIcon'] . '","giftSwf":"' . $giftinfo['giftSwf'] . '","toUserId":"' . $_REQUEST['toid'] . '","toUserName":"' . $emceeinfo['nickname'] . '","userNo":"' . $_SESSION['roomnum'] . '","giftCount":"' . $_REQUEST['count'] . '","userId":"' . $_SESSION['uid'] . '","giftName":"' . $giftinfo['giftname'] . '","userName":"' . $_SESSION['nickname'] . '","giftId":"' . $giftinfo['id'] . '"}';exit;
Salin selepas log masuk

然后处理参数是在JS里完成的
var obj_box=data["ct"]; //这里不明白这个data["ct"]代表什么,查找整个项目也找不到相关代码obj_box=obj_box.replace(/\+/g,"%20");obj_box=evalJSON(decodeURIComponent(obj_box));var giftIcon=obj_box.giftIcon,giftNum=obj_box.giftCount,giftName=obj_box.giftName,giftimg='',isGift=obj_box.isGift || 0,ugood=obj_box["userNo"],uid=obj_box["userId"],uname=decodeURIComponent(obj_box["userName"]),cugood=this.chatgnum(obj_box["userNo"]),tougood=obj_box["toUserNo"],touid=obj_box["toUserId"],touname=decodeURIComponent(obj_box['toUserName']),tocugood=this.chatgnum(obj_box["toUserNo"]),gifttop=parseInt($('#gift_history li').size()) || 0;
Salin selepas log masuk

上面这里也不明白,obj_box.giftIcon 和obj_box["userName"] 是一样的么?
最后,最大的问题来了,我在ACTION末端参数中加了一个参数,在ACTION里测试是有数值的,但是就是传不到JS里,不知道哪里出的问题


回复讨论(解决方案)

zjcoin这个就是自己加的参数

echo '{"code":"0","zjcoin":"' . $zjcoin . '","giftPath":"' . $smallIcon . '","giftStyle":"' . $giftinfo['giftStyle'] . '","giftGroup":"' . $giftinfo['sid'] . '","giftType":"' . $giftinfo['giftType'] . '","toUserNo":"' . $emceeinfo['curroomnum'] . '","isGift":"0","giftLocation":"[]","giftIcon":"' . $giftinfo['giftIcon'] . '","giftSwf":"' . $giftinfo['giftSwf'] . '","toUserId":"' . $_REQUEST['toid'] . '","toUserName":"' . $emceeinfo['nickname'] . '","userNo":"' . $_SESSION['roomnum'] . '","giftCount":"' . $_REQUEST['count'] . '","userId":"' . $_SESSION['uid'] . '","giftName":"' . $giftinfo['giftname'] . '","userName":"' . $_SESSION['nickname'] . '","giftId":"' . $giftinfo['id'] . '"}';
Salin selepas log masuk

var zjcoin = obj_box["zjcoin"];//或者var zjcoin = obj_box.zjcoin;都无法获得值,提示未定义
Salin selepas log masuk

这个php代码是ajax里后台向页面返回值的,在前台取json的值,看看js 的ajax是怎么取json的值就OK

这个php代码是ajax里后台向页面返回值的,在前台取json的值,看看js 的ajax是怎么取json的值就OK


能给一段正常json取值的代码么?我好对比一下。
在这段代码中,唯一看到跟取值有关的就是一句 var obj_box=data["ct"]; 这个data从哪来的 "ct"又代表什么,完全没有头绪

查了一些json的资料,例如:

function showJSON() { var user = { "username":"andy", "age":20, "info": { "tel": "123456", "cellphone": "98765"}, "address": [ {"city":"beijing","postcode":"222333"}, {"city":"newyork","postcode":"555666"} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.username = "Tom"; alert(user.username); } 
Salin selepas log masuk
Salin selepas log masuk

上例代码中,至少还有一个var user={ ... } 来存储json的代码,但是直接{...}这样编写的话,又该如何取值?

查了一些json的资料,例如:

function showJSON() { var user = { "username":"andy", "age":20, "info": { "tel": "123456", "cellphone": "98765"}, "address": [ {"city":"beijing","postcode":"222333"}, {"city":"newyork","postcode":"555666"} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.username = "Tom"; alert(user.username); } 
Salin selepas log masuk
Salin selepas log masuk

上例代码中,至少还有一个var user={ ... } 来存储json的代码,但是直接{...}这样编写的话,又该如何取值?




遍历获取
user[0].username

5楼的朋友没明白我的问题,
我这样说吧
在 thinkphp3.1的框架下
tpl中的 show.html 页面中进行了一些动作的提交,
提交到了lib中的showAction.class.php的其中一个方法sendMsg()代码如下
public funciton sendMsg()
{
//处理代码....忽略...

echo '{"code":"0","msg":"message1"}'; //这一段就是返回给Html信息的代码了,直接echo{参数...}
exit;
}
取值的时候,是在Javascript中的
var obj_box=data["ct"];
按照原来的代码,
obj_box.code 或者 obj_box["code"]都能取到值,可是我自己手动新增一个参数的话,就无法取值了,查过在action中是有值的,那么就是传输中出的问题,不知道大家有没有用过这种编写方式?

你自己增加的参数是怎么写的?

你自己增加的参数是怎么写的?


原先的action中的代码是
public funciton sendMsg()
{
//处理代码....忽略...

echo '{"code":"0","giftPath":"' . $smallIcon . '"......}';
exit;
}
增加参数后代码是
public funciton sendMsg()
{
//处理代码....忽略...

echo '{"code":"0", “zjcoin”:"'.$zjcoin.'","giftPath":"' . $smallIcon . '"......}';//红色的部分是增加的参数
exit;
}
在JS中,其他的参数可以用obj_box[""]来获取,可我自己添加的这个参数就是取不到,数值是有的,添加到数据库都看到值了。

又有了新的发现,另外一个js文件中

var GiftCtrl={    sendGift:function(){    var url="/index.php/Show/show_sendGift/eid/"+_show.emceeId+"/toid/"+GiftCtrl.gift_to_id+"/count/"+giftNum+"/gid/"+GiftCtrl.gift_id+"/t/"+Math.random();    var tmpgid=GiftCtrl.gift_id;    GiftCtrl.clearGiftCfg();    $.getJSON(url,function(json){		if(json){			if(json.code==0){				 GiftCtrl.gift_to_id=_show.emceeId;				 $('#giftto').html(_show.emceeNick);				Chat.getUserBalance();//用户秀币更新				Dom.$swfId("flashCallChat")._chatToSocket(0, 2, '{"_method_":"sendGift","giftPath":"' + json.giftPath + '","giftStyle":"' + json.giftStyle + '","giftGroup":"' + json.giftGroup + '","giftType":"' + json.giftType + '","toUserNo":"' + json.toUserNo + '","isGift":"' + json.isGift + '","giftLocation":"' + json.giftLocation + '","giftIcon":"' + json.giftIcon + '","giftSwf":"' + json.giftSwf + '","toUserId":"' + json.toUserId + '","toUserName":"' + json.toUserName + '","userNo":"' + json.userNo + '","giftCount":"' + json.giftCount + '","userId":"' + json.userId + '","giftName":"' + json.giftName + '","userName":"' + json.userName + '","giftId":"' + json.giftId + '","zjcoin":"' + json.zjcoin + '"}');//这一段参数的顺序跟action中的顺序一样,末尾也加了zjcoin,结果还是无法获取	}}
Salin selepas log masuk

最后那一段参数的顺序跟action中的顺序一样,我在末尾也加了zjcoin,结果还是无法获取

此楼,30分即可.

此楼,30分即可.


请指教?

终于知道原因了,原来参数传递还要通过一个swf文件, 网上下了几个能编辑swf代码的工具,能打开修改,但是一保存就弹出错误,不知道哪位大神有这样的工具,能编辑swf里面代码的工具


被保护?

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Mar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Terangkan konsep pengikatan statik lewat dalam PHP. Terangkan konsep pengikatan statik lewat dalam PHP. Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Mar 28, 2025 pm 05:11 PM

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Apr 01, 2025 pm 03:12 PM

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom. Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom. Mar 28, 2025 pm 05:12 PM

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Apa sebenarnya ciri yang tidak menyekat ReactPhp? Bagaimana untuk mengendalikan operasi I/O yang menyekatnya? Apa sebenarnya ciri yang tidak menyekat ReactPhp? Bagaimana untuk mengendalikan operasi I/O yang menyekatnya? Apr 01, 2025 pm 03:09 PM

Pengenalan rasmi kepada ciri yang tidak menyekat ReactPhp yang mendalam tafsiran mengenai ciri-ciri yang tidak menyekat ReactPhp telah menimbulkan banyak soalan pemaju: "ReactPhpisnon-blockingbydefault ...

See all articles