2012-03-29 12 views
1

Ich muss einige PHP-Dateien mit meiner Anwendung ausführen, ich habe sie auf meiner Website hochgeladen. Ich habe hier einen Artikel gelesen, ich habe dasselbe für meine Dateien gemacht, aber meine PHP-Datei arbeitet mit AJAX, also konnte ich sie nicht ausführen. Ich habe alle möglichen Wege ausprobiert, aber ich täusche mich immer noch.Wie PHP-Dateien auf Phone Gap ausführen?

search.html erstellt einen Link über js und übergibt diesen Link an get_data.php und zeigt die Ergebnisse auf derselben Seite mit dem Tag results an.

search.html

function abc(target_url) { 


    target_url = target_url||(generate_url()||"http://nces.ed.gov/collegenavigator/?"); 
    ajax = window.XMLHttpRequest?(new XMLHttpRequest()):(new ActiveXObject("Microsoft.XMLHttp")); 
    ajax.onreadystatechange=function() { 
     if(ajax.readyState===4) { 
     html_data = ajax.responseText; 
     //Do stuff with it like parsing, etc 
     //alert(html_data); 
     window.loading.style.visibility="hidden"; 
     document.getElementById("results").innerHTML = html_data ||"We're sorry"; 
     } 
    }; 
    ajax.open("GET", "./get_data.php?url="+encodeURIComponent(target_url), true); 
    ajax.send(null); 
    window.loading.style.visibility="visible"; 


    } 

Dies ist get_data.php

<?php 

include_once('simple_html_dom.php'); 
$target_url = $_REQUEST["url"]; 
$html = new simple_html_dom(); 
$html->load_file($target_url); 
$gokhan='arik'; 
#$anchors = array_diff($html->find('table[class=resultsTable] a'), $html->find('td[class=addbutton] a')); 
$h2 = $html->find('table[class=resultsTable] h2'); 
$ipeds = $html->find('p[class=ipeds hoverID]'); 

foreach($html->find('div[id=ctl00_cphCollegeNavBody_ucResultsMain_divMsg]') as $nOfResults){ 
      echo "<b>".strip_tags($nOfResults)."</b>"; 
     } 
$loca = $html->find('table[class=itables] tbody tr td[class=pbe]'); 


for($i=0;$i<count($h2);$i++) { 

    if(strip_tags($h2[$i])=="") continue; 
    #echo strip_tags(strtr($ipeds[$i], array("&nbsp;"=>" "))); 
    $iped = explode(" ", strip_tags(strtr($ipeds[$i], array("&nbsp;"=>" ")))); 


    echo "<li data-theme='c' class='ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c'> 
      <div class='ui-btn-inner ui-li'> 
       <div class='ui-btn-text'> 

        <a href='search2.php?id=".$iped[2]."' class='ui-link-inherit'><h3 class='ui-li-heading'>".strip_tags($h2[$i])."</h3><p class='ui-li-desc'>".strip_tags(strtr($loca[$i], array('</h2>'=>'</h2> ')))."</p></a> 
       </div> 
       <span class='ui-icon ui-icon-arrow-r ui-icon-shadow'/> 
      </div> 
      </li> 
      "; 


} 

?>

+0

Ich glaube nicht, 'PhoneGap' können Sie PHP auf einem Telefon laufen ... Sie sind der Gastgeber müssen PHP auf Ihrem eigenen Server und richten Sie [HTTP_Access_control] (https://developer.mozilla.org/En/HTTP_access_control) ein, damit XHR-Anfragen von Ihrer PhoneGap-App aus an sie gesendet werden können. – Sathvik

+0

Das habe ich gesagt. Sie können PHP nicht auf dem Telefon ausführen, meine PHP-Dateien auf dem Server. Ich habe Schwierigkeiten, sie zu verbinden. Auf einem anderen Beitrag heißt es, so etwas zu verwenden. aber es funktioniert nicht. '$ ('#content') .load ('http://www.example.com/test.php');' –

Antwort

0

mit Ajax (die Methode Sie versuchen) die Methode ist, würde ich vorschlagen. Sie versuchen, eine Ajax-Anfrage auszuführen, ohne ein Framework zu verwenden. Wenn Sie kein Framework irgendwo anders auf der Site verwenden, denke ich, dass dies eine gute Idee ist, um die Ladezeit der Site zu reduzieren. Aber Sie haben einige lustige Dinge in der Art, wie Sie versuchten, Ajax zu implementieren.

Wenn Sie nicht etwas zur Schaffung eines Rahmens nicht benutzen wollen würde ich so etwas wie http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_callback

schlage ich in Ihrem Kommentar bemerken Sie

erwähnt

$ ('# content'). Load (‘http://www.example.com/test.php ");

Dies bezieht sich auf die Verwendung von jQuery, um Inhalt in Ihre Seite zu laden. Wenn ich mir den obigen Beispielcode anschaue, sehe ich nicht, wo Sie jQuery tatsächlich importiert haben. Zuerst importieren Sie jQuery dann versuchen Sie, diesen Code zu verwenden. Außerdem würde ich vorschlagen, $ .ajax ({}) anstelle von $ ("# content") zu verwenden. Load ("url");

$.ajax({ 
    url: "http://www.example.com/test.php", 
    success: function(x){ 
     $("#results").html(x); 
    } 
}); 

Weitere Informationen über die jQuery-Framework Ajax-Request Besuch zu tun http://api.jquery.com/jQuery.ajax/