天上飘着五个字 發表於 2023-6-19 00:00:00

phpcms调用getJSON无法返回json数据的解决方法

<p>
代码如下:</p>
<p>
<br>
/**<br>
* 检查hash值,验证用户数据安全性<br>
*/<br>
final private function check_hash() {<br>
if(preg_match('/^public_/', ROUTE_A) || ROUTE_M =='admin' &amp;&amp; ROUTE_C =='index' || in_array(ROUTE_A, array('login'))) {<br>
return true;<br>
}<br>
if(isset($_GET['pc_hash']) &amp;&amp; $_SESSION['pc_hash'] != '' &amp;&amp; ($_SESSION['pc_hash'] == $_GET['pc_hash'])) {<br>
return true;<br>
} elseif(isset($_POST['pc_hash']) &amp;&amp; $_SESSION['pc_hash'] != '' &amp;&amp; ($_SESSION['pc_hash'] == $_POST['pc_hash'])) {<br>
return true;<br>
} else {<br>
showmessage(L('hash_check_false'),HTTP_REFERER);<br>
}<br>
}</p>
<p>
 </p>
<p>
phpcms给函数进行了hash验证,因此,现在方法是这样写的:<br>
 </p>
<div>
<p>
<span><u>复制代码</u></span></p>
<p>
代码如下:</p>
</div>
<p>
<br>
public function public_mobile_getjson_ids() {//publc是后来加上去的<br>
$modelid = intval($_GET['modelid']);<br>
$id = intval($_GET['id']);<br>
$this-&gt;db-&gt;set_model($modelid);<br>
$tablename = $this-&gt;db-&gt;table_name;<br>
$this-&gt;db-&gt;table_name = $tablename.'_data';<br>
$r = $this-&gt;db-&gt;get_one(array('id'=&gt;$id),'mobile_type');<br><br>
if($r['mobile_type']) {<br>
$relation = str_replace('|', ',', $r['mobile_type']);<br>
$relation = trim($relation,',');<br>
$where = "id IN($relation)";<br>
$infos = array();<br>
$this-&gt;mobile_db = pc_base::load_model ( 'mobile_type_model' );<br>
$datas = $this-&gt;mobile_db-&gt;select($where,'id,type_name');<br>
//$this-&gt;db-&gt;table_name = $tablename;<br>
//$datas = $this-&gt;db-&gt;select($where,'id,title');<br>
foreach($datas as $_v) {<br>
$_v['sid'] = 'v'.$_v['id'];<br>
if(strtolower(CHARSET)=='gbk') $_v['type_name'] = iconv('gbk', 'utf-8', $_v['type_name']);<br>
$infos[] = $_v;<br>
}<br>
echo json_encode($infos);<br>
}<br>
}</p>
<p>
 </p>
<p>
js部分的getJSON是这样写的:</p>
<p>
 </p>
<div>
<p>
<span><u>复制代码</u></span></p>
<p>
代码如下:</p>
</div>
<p>
<br>
//显示添加机型<br>
function show_mobiletype(modelid,id) {<br>
$.getJSON("?m=content&amp;c=content&amp;a=public_mobile_getjson_ids&amp;modelid="+modelid+"&amp;id="+id, function(json){<br>
var newrelation_ids = '';<br>
if(json==null) {<br>
alert('没有添加相关文章');<br>
return false;<br>
}<br>
$.each(json, function(i, n){<br>
newrelation_ids += "&lt;li id='"+n.sid+"'&gt;·&lt;span&gt;"+n.type_name+"&lt;/span&gt;&lt;a href='javascript:;' class='close' onclick=\"remove_relation('"+n.sid+"',"+n.id+")\"&gt;&lt;/a&gt;&lt;/li&gt;";<br>
});<br><br>
$('#mobile_type_text').html(newrelation_ids);<br>
}); <br>
}</p>
<p>
<br><span>就好了。要注意phpcms里面调用远程地址,方法前加上public啊!!</span></p>
頁: [1]
查看完整版本: phpcms调用getJSON无法返回json数据的解决方法