iT邦幫忙

0

CPanel 工作排程 執行ajax

小弟有一支程式,需要透過js去取得DOM並且重新覆值,這之後又必須透過php將資料上傳到DB,但是我放到 CPanel 工作排程 後,只執行了php的部分,js的部分他不會執行。我了解是因為排程程式不是利用瀏覽器開啟所造成的。想請問有沒解決辦法呢?
以下是程式碼大概的架構,先到資料庫查詢,將資料印出讓js做DOM抓取並覆值,然後再將印出的html格式用ajax方式傳值存檔

<?php $sql = ... 略 ?>
<div id="source_code" style="display:none"><?php echo $source_code; ?></div>
<script>
    let house_address = "<?php echo $row_house['house_address'] ?>";
	let room_name = "<?php echo $row_sign_check['room_name'] ?>";
    $('.house_address').text(house_address);
	$('.room_name').text(room_name);	
    let final_contract = $('#source_code').html();
    $.ajax({
			url:'save_final_contract.php',
			type:'post',
			data:{
				final_contract:final_contract
				}
			}).done(function(data){
				console.log(data);
			})
		}
</script>

咖咖拉 iT邦好手 1 級 ‧ 2020-08-10 16:36:28 檢舉
let final_contract = "<?php echo $source_code; ?>"
這樣寫跟先印在畫面再取值有差嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4

後端不能運行前端程式。前端不能運行後端程式

答案:無解。

你只能想辦法純後端處理。
後台運行php,它並不是瀏覽器。沒辦法幫你跑js。畢竟php也只是幫你輸出html碼。裏面的js程式碼對php來說,也不過只是一個文字檔。
真正跑js的還是只有瀏覽器。

前後端的觀念要先搞清楚才行。
ajax的部份,用後端的話可以用curl來處理你要的東西。
要將php當瀏覽器用也只有curl了。

我要發表回答

立即登入回答