2012-01-30 21 views
0

大家好我有一個問題。 我連接QT與PHP腳本..一切工作正常,但somone可以幫助我如何從它接收PHP的結果。 這裏是我的代碼:QT網絡回覆不會讓我回來PHP腳本的結果

void MainWindow::replyFinished(QNetworkReply *reply) 
{ 
    QString data = reply->readAll().trimmed(); 
    // document.setContent(reply); 
} 

但OFC我沒有得到任何東西到這個function..Is可以:

void MainWindow::Dodaj_korisnika(QUrl url) 
{ 
    //reply = qnam.get(QNetworkRequest(url)); 
    //////////////////////////////////////////////////// 
    QUrl params; 
    params.addQueryItem("action","Dodaj_korisnika"); 
    params.addQueryItem("ime",ui->lineEdit); 
    params.addQueryItem("prezime",ui->lineEdit_2); 
    params.addQueryItem("broj",ui->lineEdit_3); 
    params.addQueryItem("adresa",ui->lineEdit_4); 

     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")); 
     QNetworkAccessManager *manager = new QNetworkAccessManager(this); 
     QNetworkReply *reply = manager->post(request, data); 
     connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); 
} 

而且我已經在我需要使用此功能的論壇發現從QT經理變量讀取?我收到XML結果。我想把它作爲QDomDocument是可能的? 請給我一些提示或一些例子,如果你有一些時間.. 謝謝大家!

回答

1

你確定PHP腳本收到了什麼嗎?

  • 首先要創建一個信號和插槽創建發佈
  • 第三驗證查詢很好地形成,並且在PHP腳本收到後連接每次您發佈
  • 二。如果您有腳本日誌\打印收到的消息

編輯:這是應該的樣子

// early in the code, like in the constructor 
void MainWindow::init(){ 
    this->manager = new QNetworkAccessManager(this); 
    connect(this->manager, SIGNAL(finished(QNetworkReply*)), 
      this, SLOT(replyFinished(QNetworkReply*))); 
} 

void MainWindow::Dodaj_korisnika(QUrl url){ 

    QUrl params; 
    params.addQueryItem("action","Dodaj_korisnika"); 
    params.addQueryItem("ime",ui->lineEdit); 
    params.addQueryItem("prezime",ui->lineEdit_2); 
    params.addQueryItem("broj",ui->lineEdit_3); 
    params.addQueryItem("adresa",ui->lineEdit_4); 

    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")); 

    //Here you don't need to get the reply, it will be the same given to 
    //MainWindow::replyFinished 
    this->manager->post(request, data); 

} 

void MainWindow::replyFinished(QNetworkReply *reply){ 
    //Use the reply as you wish 
} 
+0

是啊,我觸發腳本。所以你可以給我一些例子..如何改變我的代碼?所以我可以創建一個類,以便可以訪問數據庫?以及如何檢查連接是否正常?然後,我只需要調用所有需要觸發php腳本的東西。所以,你可以幫助我,讓我可以與我的服務器通信。這是oracle數據庫順便說一句,這是使用PHP。我得到xml作爲結果..我的意思是我應該得到它們。先謝謝先生。 – Denonth 2012-01-30 18:18:15

+0

任何人都可能有一些想法? – Denonth 2012-01-30 19:30:08

+0

好吧謝謝..但我仍然沒有得到任何回覆變量的答覆已完成的函數 – Denonth 2012-01-30 22:14:58