[英]How to get data sent from AJAX POST in PHP?
我正在嘗試使用AJAX & JQUERY
獲取POST數據
我有一個bootstrap下拉列表,其中我顯示了數據庫中的一些值。 我想將我選擇的項目作為POST傳遞給我的PHP。
我的下拉是這樣的:
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Your Sites <span class="caret"></span></a>
<ul class="dropdown-menu">
<?php
foreach($sites as $site)
{
echo "<li class='specialLink' id='".$site->site_key."'><a href='#'>".$site->site_key."</a></li>";
}
?>
</ul>
</li>
現在我的問題是,當我在PHP中回顯POST值時,我什么也得不到,而如果我從ajax提醒數據,那么它會顯示正確的值。
此外,如果我打開我的瀏覽器控制台,可以看到我在網絡 - > XHR選項卡中選擇的值。
<script type="text/javascript">
$( ".specialLink" ).click(function() {
var site = this.id;
console.log(site);
var url= "<?php echo base_url('customer/dashboard/index') ?>";
//get value for throw to controller
$.ajax({
type: "POST", //send with post
url: "<?php echo base_url('customer/dashboard/index') ?>",
data: {site:site},
success:function(data){
},
});
});
試圖在PHP中獲取這樣的值:
if(!empty($_POST))
{
//$site = $_POST['site'];
echo $this->input->post('site');
//$this->session->set_userdata('site', $site);
}
Request URL:http://127.0.0.1/bizrtc/customer/dashboard/index
Request Method:POST
Status Code:200 OK
Form Data
view source
view URL encoded
site:HT45-YT6T
嘗試更改下拉代碼,看看它是否有效:
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Your Sites <span class="caret"></span></a>
<ul class="dropdown-menu">
<?php
foreach($sites as $site)
{
echo "<li class='specialLink' data-id='".$site->site_key."' id='".$site->site_key."'><a href='#'>".$site->site_key."</a></li>";
}
?>
</ul>
</li>
你的JS代碼:
<script type="text/javascript">
$( ".specialLink" ).click(function() {
// var site = this.id;
var site = $(this).attr('data-id').val;
console.log(site);
var url= "<?php echo base_url('customer/dashboard/index') ?>";
//get value for throw to controller
$.ajax({
type: "POST", //send with post
url: "<?php echo base_url('customer/dashboard/index') ?>",
data: {site:site},
success:function(data){
},
});
});
嘗試創建一個簡單的div:
<div id="test"></div>
做一個echo json_encode
if($_REQUEST['function'] == 'function_site')
{
$site = $_POST['site'];
//$this->session->set_userdata('site', $site);
$response['site'] = $site;
echo json_encode($response);
}
並將你的ajax結果附加到他:
$.ajax({
type: "POST", //send with post
url: "<?php echo base_url('customer/dashboard/index') ?>",
data: {site:site, function:function_site},
dataType: 'json',
success:function(data){
$("#test").html(data.site);
},
});
我現在沒有環境來測試你,但是你應該看看你現在正在回應什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.