gpt4 book ai didi

javascript - 无法调用函数/AJAX 相关

转载 作者:行者123 更新时间:2023-11-27 23:14:14 28 4
gpt4 key购买 nike

我正在尝试在单击该复选框时同步更新我的数据库。我决定使用 aJax,但它似乎无法识别 ajax。

代码:将成为 Switch_Active(this.id) 函数的元素

...
<div class='switch'>
<label>
Deactivate
<br>
<input name='switch_Activate1'onclick='Switch_Activate(this.id)' type='checkbox'>
<span class='lever'></span>
<br>
Activate
</label>
</div>
...

脚本

    <script type="text/javascript">
function Switch_Activate(id) {

if (!document.getElementById(id).checked) {
var projectID = id;
var Activation_Status = 1;
var dataString = "projectID=" + projectID + "&Activation_Status=" + Activation_Status ;

$.ajax({
type: "POST",
url: "ajax/switchchange.php",
data: dataString,
cache: false,
dataType: "json",
success: function (data) {
alert("asd1");
}
});

}
else{
var projectID = id;
var Activation_Status = 1;
var dataString = "projectID=" + projectID + "&Activation_Status=" + Activation_Status ;

$.ajax({

type: "POST",
url: "ajax/switchchange.php",
data: dataString,
cache: false,
dataType: "json",
success: function (data) {
alert("asd2");
}
});
}

}//
</script>

switchchange.php

<?php

include("../../connection/connection.php");
echo"<script type='text/javascript'>alert('php in');</script>";
$projectID = $_POST['projectID'];
$Account_Status = $_POST['Activation_Status'];
$sql = "update tblProject set projectStatus = '$Account_Status' where projectID = '$Account_Status'";
$stmnt = sqlsrv_query($db, $sql);
?>

连接

    <?php

//Database Connection
try{
$db = new PDO("sqlsrv:Server=AJ-PC\SQLEXPRESS;Database=RealEstate_DB", "", "");
$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOExceptio $e){
echo $e->getMessage();
die();
}

最佳答案

我会以这种方式重写您的代码,确保您遵循以下步骤:

  1. 确保包含 jQuery
  2. 如果您可以简单地使用 this 来为您提供有关该元素对象的所有信息,为什么还要使用 this.id
  3. 您在 if/else 条件中使用相同的代码,您所需要做的就是使用必要的选项构建 dataString,然后将数据传递给 AJAX 一次。
  4. 不需要 return false,因为单击复选框不会触发任何其他操作。

这是我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

<input id="someID" name='switch_Activate1' onclick='Switch_Activate(this)' type='checkbox'>

<script>
function Switch_Activate(checkbox) {

var dataString = {
'project_ID': checkbox.id,
'Activation_Status': checkbox.checked
};

$.ajax({
type: "POST",
url: "ajax/switchchange.php",
data: dataString,
cache: false,
dataType: "json",
done: function (data) {
alert(data.message);
if (data.response) {
// your success code
} else {
// your error code
}
}
});
}
</script>

更新:

我刚刚意识到您的 AJAX 调用设置为接受 JSON dataType: "json" 但您的 PHP 未输出 JSON。您需要将所有输出转换为 JSON,因此在您的情况下您可以执行以下操作:

<?php
// ... your Database UPDATE code...

$result = array(
"response" => TRUE,
"message" => "some message"
);
header("Content-type: application/json");
echo json_encode($result);

关于javascript - 无法调用函数/AJAX 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35947916/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com