2010-10-25 8 views
1

Возможно, этот вопрос задан раньше, но я борюсь за это. У меня есть php-файл, который не содержит какой-либо части php-кода (может быть, в будущем), он включает только javascript и некоторый html. Я хочу нажать кнопку в этом файле php, чтобы отправить некоторое количество данных в другой файл php. это следующим образом ..Передача данных с javascript на php с использованием JQuery

1-я получил функцию saveProfile в A.php и кнопка вызова этой функции

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

2-я получил еще один PHP, который называется dbConn.php который получает данные и сохраняет в таблице базы данных.

Я нашел так много примеров. Я применил их, но он по-прежнему не работает и заводит меня с ума. Я программист Java, но новичок в php. Любая помощь приветствуется. Подумайте, какой-нибудь чистый образец кода, или если вы видите какую-либо ошибку, пожалуйста, предупредите меня. Спасибо всем заблаговременно ...

С уважением. Озлем.

+1

Можете ли вы разместить код в 'dbConn.php'? – casablanca

+1

Это также поможет, если вы уточните, что означает «не работает». Он падает? Вы не получаете запись в базе данных? Ваш jQuery умирает? Просьба уточнить. – Jason

ответ

1

Посмотрите на accepted answer на "Javascript Post Request like a Form Submit".

Она обеспечивает JavaScript для для:

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

Я думаю, что это будет делать то, что вы хотите.

+0

jQuery использует Ajax для того же, но более лаконично и без загрузки новой страницы. – outis

+0

Эй, вы можете опубликовать пример того, как это сделать, используя jQuery/Ajax? Приятно знать, что это возможно, но без примера кода, это не очень помогает людям, читающим это. –

0

Спасибо за все ответы. Я решил проблему. Данные проходили, но я не смог обработать их должным образом. Я просто добавляю фиктивный код, чтобы проверить его. Он работал. Я загружу код после того, как закончу. Спасибо всем.

+0

Вы должны добавить пример проблемного кода к вопросу, а затем опубликовать свое решение в своем ответе, чтобы другие могли узнать. Это также будет лучше соответствовать формату Q & A SO. Как бы то ни было, этот «ответ» больше похож на дискуссию. – outis

0

Эта функция находится в файле PHP, но полон JS-кода. Последняя строка передает данные в другой файл PHP, который сохраняет данные в базе данных.

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

    } 

Это dbConn.php, который называется методом saveProfile. Данные обрабатываются следующим образом:

$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"; 
     } 

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