[英]Ajax function to call php function in same pag doesn't work
我的問題是與我要調用的php函數相同的php文件中的Ajax無法正常工作。 我想確保當我按下按鈕時頁面不會重新加載,並且該函數將被調用。 如果可以的話,我在頁面的底部放置了ajax標簽,在頁面頂部放置了php函數。 這是我的代碼:
阿賈克斯:
<script>
function getData() {
$.ajax({
type: "GET",
url: "view.php",
data: {action: 'PakeistiCashreg'},
success: function(data){
alert('Kasos aparatas sėkmingai pakeistas');
}
});
}
</script>
我想調用的PHP函數:
if(isset($_GET["action"])) {
if($_GET["action"] == "PakeistiCashreg") {
mysql_query("UPDATE ".$table['invoices']." SET `CashReg` = '".$_POST['CashRegInput']."' WHERE `id` = '156' LIMIT 1");
}
}
以及發生動作的按鈕:
<form method="post"><?php echo CASHREG; ?>:<select name="CashRegInput" id="CashRegInput" class="Input3"><option></option>
<?php
foreach($CashReg as $key => $value) {
echo '<option value="'.$value.'">'.$value.'</option>';
}
?>
</select><button name="PakeistiCashreg" onclick="getData();" id="PakeistiCashreg">Pakeisti kasos aparatą</button></form>
試試這個:標記:
<form name="some-form" method="post" onsubmit="getData(event);">
<?php echo CASHREG; ?>:
<select name="CashRegInput" id="CashRegInput" class="Input3">
<option></option>
<?php
foreach($CashReg as $key => $value) {
echo '<option value="'.$value.'">'.$value.'</option>';
}
?>
</select>
<button type="submit" name="PakeistiCashreg" id="PakeistiCashreg">Pakeisti kasos aparatą</button>
</form>
腳本:
function getData(e) {
e.preventDefault();
var cashRegInput = $('#CashRegInput').val();
if (cashRegInput) {
$.ajax({
type: "POST",
url: "view.php",
data: { action: 'PakeistiCashreg', CashRegInput: cashRegInput },
success: function(data) {
alert('Kasos aparatas sėkmingai pakeistas');
}
});
}
}
請讓我知道這對你有沒有用。
我不確定,但是我想您是說您有一個文件view.php
,其中包含最初加載的頁面和ajax調用的處理程序。 如果這不是您要說的,請忽略此答案。
進行ajax請求與加載頁面不同。 當客戶端收到ajax響應時,它所做的只是調用適當的處理程序。 在這種情況下,它所要做的只是alert('Kasos aparatas sėkmingai pakeistas');
。 它試圖在首次加載頁面時運行處理程序,只是您已在$_GET("action")
上添加了一個檢查以防止這種情況發生。 對於ajax調用,您需要一個單獨的URL和一個單獨的處理程序。 例如,您可以將ajax調用URL更改為action.php
,然后將包含數據庫調用的代碼段移動到名為action.php
的單獨文件中。
(實際上,PHP實際上僅用於返回HTML,而不用於ajax調用。因此,用其他某種語言/框架的處理程序替換action.php
會更好。但是PHP可以工作,在任何情況下我都不會足夠了解您的設置,以提供有關如何執行此操作的建議。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.