gpt4 book ai didi

javascript - JavaScript、PHP 和 MySQL 之间的通信

转载 作者:行者123 更新时间:2023-11-29 20:58:35 25 4
gpt4 key购买 nike

我正在尝试学习 JavaScript 来为 Cordova 编写代码。我读了很多教程,但没有一个能帮助我解决以下问题。

我的 cordova 应用程序用于测试非常简单。只有一个文本框和 2 个按钮。两个按钮都调用我的服务器上的 PHP 脚本。一个按钮将数据发送到 PHP 脚本,以将文本字段的值插入 MySQL 数据库,第二个按钮调用相同的脚本,并将数据库的值写入我的 cordova 应用程序。

这是我的

<?PHP
$response = array();

require_once __DIR__ . '/db_config.php';

$db_link = mysqli_connect (
DB_SERVER,
DB_USER,
DB_PASSWORD,
DB_DATABASE
);
mysqli_set_charset($db_link, 'utf8');
if (!$db_link)
{
die ('keine Verbindung '.mysqli_error());
}

if(isset($_POST['action']) && $_POST['action'] == 'insert'){
$name = $_POST['name'];
$sql = "INSERT INTO test.testTable (name) VALUES ('$name')";
$db_erg = mysqli_query($db_link, $sql);
if (!$db_erg){
echo "error";
}else{
echo "ok";
}
}

if(isset($_POST['action']) && $_POST['action']=='read'){
$sql = "SELECT * FROM testTable";

$db_erg = mysqli_query( $db_link, $sql );
if (!$db_erg )
{
$response["success"] = 0;
$response["message"] = "Oops!";
echo json_encode($response);
die('Ungültige Abfrage: ' . mysqli_error());
}

while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
//$response["success"] = $zeile['pid'];
//$response["message"] = $zeile['name'];
$response[]=$zeile;
}
echo json_encode($response);
mysqli_free_result( $db_erg );
}
?>

这是我在 cordova 应用程序中的 2 个函数:

function getNameFromServer() {
var url = "appcon.php";
var action = 'read';
$.getJSON(url, function (returnedData) {
$.each(returnedData, function (key, value) {
var id = value.pid;
var name = value.name;
$("#listview").append("<li>" + id + " - " + name) + "</li>";
});
});
}

function sendNameToServer() {
console.log("sendNameToServer aufgerufen");
var url2send = "appcon.php";
var name = $("#Name").val()
var dataString = name;
console.log(dataString);
if ($.trim(name).length>0) {
$.ajax({
type: "POST",
url: url2send,
data: { action: 'insert', name: dataString },
crossDomain: true,
cache: false,
beforeSend: function () {
console.log("sendNameToServer beforeSend wurde aufgerufen");
},
success: function (data) {
if (data == "ok") {
alert("Daten eingefuegt");
}
if (data == "error") {
alert("Da ging was schief");
}
}
});
}
}

我的疑问/问题:

  1. sendNameToServer 函数在这种情况下起作用,数据将被插入到我的数据库中。但我从未收到警报(成功:从未调用过)。

  2. 如何将 "action = read" 传递给 getNameFromServer() 函数中的 PHP 脚本?

第三个问题有点离题,但是这种代码艺术是“保存”还是操作cordova应用程序和服务器之间的数据很简单?有什么更好的方法或者如何加密传输?

最佳答案

这是您问题的部分答案。

$.getJSON有第二个可选参数 data这可以是您想要传递给脚本的信息对象。

function getNameFromServer() {
$.getJSON("appcon.php", { action: 'read' }, function (returnedData) {
$.each(returnedData, function (key, value) {
var id = value.pid;
var name = value.name;
$("#listview").append("<li>" + id + " - " + name) + "</li>";
});
});
}

编辑:由于您正在使用$.getJSON() ,请求方法为GET ,这意味着您必须使用 $_GET在你的第三个if PHP 脚本中的语句。

if(isset($_GET['action']) && $_GET['action'] == 'read'){

关于javascript - JavaScript、PHP 和 MySQL 之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420984/

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