我刚接触Framework7。我想使用AJAX从数据库中获取数据。它可以在浏览器上正常工作,我可以获取数据并将其显示在HTML文件上,尽管当我将其转换为apk(使用Cordova)时无法显示任何数据。我正在使用外部数据库进行测试。
PHP代码:
$db['db_host'] = 'remotemysql.com';
$db['db_user'] = 'user';
$db['db_pass'] = 'pass';
$db['db_name'] = 'name';
foreach ( $db as $key => $value ) {
define( strtoupper( $key ), $value );
}
$connection = mysqli_connect( DB_HOST, DB_USER, DB_PASS, DB_NAME );
if ( !$connection ) {
die( 'database failed');
}
$result = mysqli_query($connection,"SELECT * FROM users_details WHERE user_id = 1");
$rows = array();
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
print json_encode($rows);
HTML / AJAX请求:
<template>
<div class="page no-navbar home-user-page">
<div class="page-content home-user-page-content">
<div class="user-details-box">
<div class="user-details">
<div id="user-name"></div>
<div id="user-title"></div>
</div>
<div class="user-chart-outer-box">
<div id="user-point"></div>
<div id="user-level"></div>
</div>
</div>
</div>
</div>
</template>
<script>
return {
on: {
pageInit: function() {
app.request.get('comps/get_user.php', function(response) {
dataJSON = JSON.parse( response );
let user_name = dataJSON[0].user_name;
let user_title = dataJSON[0].user_title;
let user_points = dataJSON[0].user_points;
let level = Math.ceil( user_points / 200 );
$( '#user-name' ).html( user_name );
$( '#user-title' ).html( user_title );
$( '#user-point' ).html( user_points );
$( '#user-level' ).html( "Level " + level );
});
}
}
}
</script>
预先感谢
〜 内森。
答案 0 :(得分:0)
通常由于您尝试从本地调用php页面而发生此问题 服务器使用安装在移动设备上的apk。
以便我们可以在app.request.get('comps/get_user.php', function(response) {
行中说出您的问题,并且您可以通过执行以下一种解决方案来解决此问题:
myStaginServer.com/get_user.php
一样调用该页面。195.155.0.4/get_user.php
。注意:您可以通过连接设备直接从APK调试工作,并启用对开发设备的潜入,然后打开chrome,然后选择远程设备,您将看到您的设备并跟踪来自移动设备的请求和任何错误。 (正在使用调试APK版本)。
祝你好运。