[英]How to pass JavaScript values to PHP within the Ajax
這是情況。
我正在嘗試將一些 Javascript 值傳遞給 ajax 中的各種 PHP 函數,以便它可以正確顯示在頁面上。
這是我的代碼:
$("[data-department-id]").click(function() {
id = $(this).attr('data-department-id');
document.getElementById('department'+id).innerHTML = '';
$.ajax({
url:"/desk/template/fetchtickets.php",
type: 'POST',
dataType: 'json',
data : {
'id' : id
},
success: function (res) {
$('#department'+id).append('<ul>');
for (var key in res) {
var ticketId = res[key].id;
var clientId = res[key].clientid;
var clientName = res[key].name;
var clientColor = res[key].hexColor;
<?php $ticketId = '"+ticketId+"'; ?>
<?php $clientId = '"+clientId+"'; ?>
<?php $clientName = '"+clientName+"'; ?>
<?php $clientColor = 'clientColor'; ?>
$('#department'+id).append('<li class="list-group-item list-group-item-light" data-date-2="<?php echo Ticket::lastReplyStamp($ticketId); ?>"> <span class="text-width"><a href="?route=tickets/manage&id='+res[key].id+'">'+res[key].ticket+' '+res[key].subject+'</a></span><div class="tools" ><span class="client-listing"> <?php clientBadge($clientId,$clientName,$clientColor); ?> <?php // echo "<scipt>document.writeln(test)</script>"; ?> '+test+' </div></div></li>');
}
$('#department'+id).append('</ul>');
}
});
})
當我做一個 console.log();
它顯示了正確的值,但是,當我執行 echo $ticketId 時,它顯示 +ticketId+。
現在我確實做了一個 document.write 和 document.writeln ,但它仍然不起作用。
有沒有合適的解決方案來解決我的問題?
您不能在此處添加 php 代碼。您可以使用 JQuery 更改 Dom 中的值或設置一些隱藏的輸入值,但您不能在 JS 中設置 php 變量。 PHP 在服務器端運行。 當 php 代碼運行時,您的 js 代碼正在等待在客戶端計算機上運行。
這些行總是將被解釋為從服務器端分配的字符串。
<?php $ticketId = '"+ticketId+"'; ?>
<?php $clientId = '"+clientId+"'; ?>
<?php $clientName = '"+clientName+"'; ?>
<?php $clientColor = 'clientColor'; ?>
您的代碼處理順序是這樣的:
data-department-id
)res
中有響應,作為success(res)
ZC1C42507C17838或者,如果服務器拋出錯誤響應,則 6. 和 7. 不會觸發錯誤回調
但它的主要部分,你的成功()中的 PHP 代碼 function 不會像你想的那樣運行,這是在 Ajax 收到響應之后。 此時您所能做的就是使用 javascript 來操作變量。
因此,簡而言之,更改下面的部分並使用 javascript 或 jQuery 如果您有根據響應更改 DOM 元素。
<?php $ticketId = '"+ticketId+"'; ?>
...
...
例如,假設您有一個顯示票證 ID 的 H1 標簽。 你會做
// jQuery
$('#ticketIdElement').text(res.id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.