[英]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.