2012-05-18 4 views
0

У меня есть HTML-файл, который загружается как WebView в моем Qt MainWindow, и файл находится в папке localhost XAMPP. Файл в основном выполняет два периода времени и времени от пользователя, и когда пользователь нажимает кнопку «Запросы Fetch», на карте отображается общее количество запросов, полученных из базы данных MySQL на XAMPP- в качестве тепловой карты. Однако попытка запустить этот HTML-файл из кнопки Qt -clicking the Fetch в окне HTML - дает мне ошибку AJAX POST, и я не могу получить доступ к базе данных из Qt, в то время как копия локального хоста. Я также попытался отправить POST в файл PHP, который извлекает запросы с помощью NetworkAccessManager, но я получил сообщение «Неизвестная ошибка» в качестве ответа. Есть ли способ устранить это? Код HTML-JQuery и Почтовые индексы NetworkAccessManager ниже:проблема с доступом к базе данных в qt webkit

HTML-JQuery часть:

<form id="ajaxForm" action="index.php" method="post"> 

Start <input type="text" name = "date1" id = "datepicker" value = "2011-07-13" style = "width:70px"> 
<input type="text" name = "time1" id = "timepicker1" value = "00:00" style = "width:40px"> 
-- 
End <input type="text" name = "date2" id = "datepicker2" value = "2011-07-13" style = "width:70px"> 
<input type="text" name = "time2" id = "timepicker2" value = "00:01" style = "width:40px"> 



<select name = "freq"> 
    <option value = "all" selected = "true">all</option> 
    <option value = "hourly">hourly</option> 
    <option value = "daily">daily</option> 
    <option value = "weekly">weekly</option> 
    <option value = "monthly">monthly</option> 
</select> 

data between 
    <input type="text" id="time" style="border:0; color:#f6931f; font-weight:bold;" /> 

    <input type="submit" name="fetch" value="Fetch"> 


</form> 

И часть NetworkAccessManager я использовал, чтобы проверить мой PHP файл для ответов:

QNetworkAccessManager* mNetworkManager = new QNetworkAccessManager(this); 
QObject::connect(mNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onNetworkReply(QNetworkReply*))); 
connect(mNetworkManager, SIGNAL(finished(QNetworkReply*)), 
     this, SLOT(replyFinished(QNetworkReply*))); 
QUrl url = "http://localhost/heatQuery.php"; 


QUrl params; 
params.addQueryItem("date1","2011-07-13"); 
params.addQueryItem("time1","00:00"); 
params.addQueryItem("date2","2011-07-13"); 
params.addQueryItem("time2","13:00"); 
params.addQueryItem("freq","hourly"); 


QByteArray data; 
data.append(params.toString()); 
data.remove(0,1); 

QNetworkRequest request; 
request.setUrl(url); 
request.setHeader(QNetworkRequest::ContentTypeHeader, 
QVariant("application/x-www-form-urlencoded")); 
mNetworkManager->post(request, data); 


void MainWindow::replyFinished(QNetworkReply *reply){ 
//Use the reply as you wish 
QString text(reply->errorString()); 
std::cout<<"REPLY IS" << text.toStdString() << std::endl; 

} 

ответ

1

Поскольку локальная копия успешно работает с базой данных, Change the permission of your database and then run.

Чтобы изменить разрешение базы данных для полного выполнения этой команды [Предполагая, что вы используете Linux].

chmod 777 database_name 
+0

спасибо, на самом деле я использую Windows 7, но с использованием настроек phpMyAdmin и предоставления разрешений на выполнение, похоже, работал, но я все равно получаю сообщения об ошибках и многократно нажимаю кнопку «Fetch», а затем выполняет задание. Любые идеи о том, что может быть причиной этого? – bremmS

 Смежные вопросы

  • Нет связанных вопросов^_^