2010-10-25 6 views
1

Peut-être que cette question a été posée auparavant, mais j'ai du mal à le faire. J'ai un fichier php qui n'inclut aucun morceau de code php (pourrait être dans le futur), il inclut juste javascript et du code HTML. Ce que je veux faire est de cliquer sur un bouton dans ce fichier php pour envoyer une quantité de données à un autre fichier php. le de cette façon ..transmettre des données de javascript à php en utilisant Jquery

1 J'ai une fonction saveprofile dans a.php et un bouton appelle cette fonction

function saveProfile(){ 
     var variableD = 'sample data'; 
     $.post("dbConn.php", { js: variableD}); 
    } 

2-je ai obtenu un autre php qui est appelé dbConn.php qui reçoit des données et stocke dans une table de base de données.

J'ai trouvé tellement d'exemples. Je les ai appliquées mais ça ne marche toujours pas et ça me rend fou. Je suis un programmeur java mais nouveau en php. Toute aide est appréciée. Donne-moi un code échantillon propre ou si vous voyez une erreur s'il vous plaît veuillez me prévenir. Merci à tous à l'avance ...

Cordialement. Ozlem.

+1

Pouvez-vous publier le code dans 'dbConn.php'? – casablanca

+1

Il serait également utile si vous avez clarifié ce que "ne fonctionne pas" signifie. Il se bloque? Vous n'obtenez pas d'entrée dans la base de données? Votre jQuery meurt? Précisez s'il vous plaît. – Jason

Répondre

1

Jetez un oeil à accepted answer à "Javascript Post Request like a Form Submit".

Il fournit javascript pour pour:

function post_to_url(path, params, method) { 
... 
} 

Je pense que cela va faire ce que vous voulez.

+0

jQuery utilise Ajax pour faire la même chose, mais plus succinctement et sans charger une nouvelle page. – outis

+0

Hey outis, pouvez-vous poster un exemple de la façon de le faire en utilisant jQuery/Ajax? Heureux de savoir que c'est possible, mais sans code d'exemple, ce n'est pas beaucoup d'aide aux gens qui lisent ceci. –

0

Merci pour toutes les réponses. J'ai résolu le problème. Les données avaient été passées mais je n'étais pas capable de le gérer correctement. Je viens d'ajouter un code factice pour le tester.Il a travaillé. Je téléchargerai le code après que j'ai fini. Merci à tous.

+0

Vous devez ajouter un exemple de code de problème à la question, puis poster votre solution dans votre réponse afin que les autres puissent l'apprendre. Cela permettra également de mieux correspondre au format Q & R de SO. En l'état, cette "réponse" ressemble plus à une discussion. – outis

0

Cette fonction est dans un fichier PHP, mais est plein de code JS. La dernière ligne transmet les données à un autre fichier PHP qui enregistre les données dans une base de données.

function saveProfile(){ 

     var _profileId = 0; 
     var _profileName = document.getElementById('nameProfile').value; 

     var queryArr=[]; 
     $(markersArray).each(function (index){ 
      //alert(markersArray[index].name); 

      var _locationId = index; 
      var _locName = markersArray[index].name; 
      var _markerLat = markersArray[index].marker.getLatLng().lat(); 
      var _markerLng = markersArray[index].marker.getLatLng().lng(); 

      var locations = { 
           profileName: _profileName, 
           locationId:_locationId, 
           locationName:_locName, 
           lat:_markerLat, 
           lng:_markerLng } 

      queryStr = { "locations": locations} 

      queryArr.push(queryStr); 


     }); 

     /*for (var i=0; i<markersArray.length; i++){ 
      alert(queryArr[i].locations.locationId+"--"+queryArr[i].locations.locationName +"--"+queryArr[i].locations.lat); 
     }*/ 

      $.post('dbConn.php', { opType:"saveAsProfile" , data: queryArr}, showResult, "text"); 

    } 

C'est dbConn.php, qui est appelée par la méthode saveProfile. Les données sont traitées comme suit:

$db_host = 'localhost'; 
    $db_user = 'root'; 
    $db_pass = ''; 
    $db_name = 'google_map_db'; 



    $opType = $_POST['opType']; 

    //SAVE PROFILES WITH A PROFILE NAME 
    if(!strcmp($opType, "saveAsProfile")){ 

     $res = $_POST['data']; 
     $connect = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error()); 
     mysql_select_db($db_name) or die(mysql_error()); 
     $queryString = ""; 

     for($i = 0; $i < sizeof($res); $i++){ 

      $profileName = $res[$i]['locations']['profileName']; 
      $locationId = $res[$i]['locations']['locationId']; 
      $locationName = $res[$i]['locations']['locationName']; 
      $lat   = $res[$i]['locations']['lat']; 
      $lng   = $res[$i]['locations']['lng']; 

      $sp = " "; 
      $queryString = $queryString . "(0 ".",'".$profileName."',".$locationId.",'".$locationName."',".$lat.",".$lng.") "; 

      if($i<sizeof($res)-1) 
       $queryString = $queryString . ", "; 

     } 


     $qInsertUser = mysql_query(" INSERT INTO `map_locations` (`profileId`, `profileName`, `locationId`, `locationName`, `lat`, `lng`) 
            VALUES ".$queryString." "); 

     if ($qInsertUser){ 
      echo "successfully added!!!"; 
     } else { 
      echo "Error"; 
     } 

    } 
Questions connexes