Передача данных из JavaScript в php с помощью Jquery - PullRequest
1 голос
/ 25 октября 2010

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

1-у меня есть функция saveProfile в a.php и кнопка вызывает эту функцию

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

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

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

С уважением.Ozlem.

Ответы [ 3 ]

1 голос
/ 25 октября 2010

Взгляните на принятый ответ на " Javascript Post Request, подобный отправке формы ".

Предоставляет javascript для:

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

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

0 голосов
/ 26 октября 2010

Эта функция находится в файле 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";
        }

    }
0 голосов
/ 25 октября 2010

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

...