2014-12-18 4 views
0

Я использую API JQuery/Ajax для обновления соответствующей базы данных с информацией, которую пользователи вводят при регистрации для своей учетной записи. Как только данные были успешно отправлены, мне нужно открыть другую страницу, на которой пользователь может загрузить свою фотографию пользователя. Обрабатывающая PHP-страница, в которую отправляются мои данные, использует функцию PDO для захвата последнего вставленного id в мою таблицу $users_ID_count = $dbh->lastInsertId();. Затем он возвращает значение $ users_ID_count к моей функции успеха в AJAX, где я был под своим намерением, я мог открыть страницу загрузки pic с идентификатором в качестве параметра. Возможно, я не могу использовать идентификатор, переданный в URL-адресе, и я широко открываю для лучшего решения.Передача параметров на другую веб-страницу

var dataString = 'name1='+ first + '&last1='+ last + '&email1='+ email + '&password1='+ password + '&user1=' + usrname + '&dev=' + dev + '&des=' + des + '&bth=' + bth; 

      // AJAX Code To Submit Form. jquery version 
       $.ajax({ 
        type: "POST", 
        url: "blog-signup-srvr-4.php", 
        data: dataString, 
        cache: false, 
        success: function(text){ 
         window.location.assign('http://localhost/knoxPrograms/knoxville_programmers/blog-signup-propic.php?disatl ='+ text); 
        } 
       }); 

ниже блог-регистрацию-SRVR-4.php жаль, что он таскает довольно долго

if(isset($_REQUEST['name1']) && isset($_REQUEST['last1']) && isset($_REQUEST['email1']) && isset($_REQUEST['password1']) && isset($_REQUEST['user1']) && isset($_REQUEST['dev']) && isset($_REQUEST['des']) && isset($_REQUEST['bth'])) 
    { 
    //career type field values 
    $dev = $_REQUEST['dev']; 
    $des = $_REQUEST['des']; 
    $bth = $_REQUEST['bth']; 


    //su form field values 
    $firstName = $_REQUEST['name1']; 
    $lastName = $_REQUEST['last1']; 
    $emailAddr = $_REQUEST['email1']; 
    $usrPass = $_REQUEST['password1']; 
    $userId = $_REQUEST['user1'];   


    setUpUser($dev, $des, $bth, $dbh, $firstName, $lastName, $emailAddr, $usrPass, $userId, $dbh); 

} 

    //initial set up function. Prepare sql statements, bind parameters to users input and send  
    function setUpUser($dev, $des, $bth, $dbh, $first, $last, $email, $pass, $id, $dbh) 
    { 

    $stmt = $dbh->prepare('INSERT INTO users(userName, userPass) VALUES(? , ?)'); 
    $stmt2= $dbh->prepare('INSERT INTO userinfo(firstName, lastName, email, ID, careerType) VALUES(?,?,?,?,?)');  

    $dbh->beginTransaction(); //the start of paramater binding and execution 

    $stmt->bindParam(1, $id); 
    $stmt->bindParam(2,$pass); 
    $stmt2->bindParam(1,$first); 
    $stmt2->bindParam(2,$last); 
    $stmt2->bindParam(3,$email); 


    //one of the following sends the string 'true' over, the value 
    //of the element that sends true over is what is updated in our database 

    if($dev == "true"){ 
     $dev = "dev"; 
     $stmt2->bindParam(5, $dev); 
    } 
    elseif($des == "true"){ 
     $des = "des"; 
     $stmt2->bindParam(5,$des); 
    } 
    elseif($bth == "true"){ 
     $bth = "bth"; 
     $stmt2->bindParam(5,$bth); 
    } 

    $stmt->execute(); 
    $users_ID_count = $dbh->lastInsertId(); 

    $stmt2->bindParam(4,$users_ID_count); //bind parameter after the first statement has been created and its last id insert is stored 

    $stmt2->execute(); //execute after last id inserted is binded to parameter so we may enter it into our database 

    $dbh->commit();    
    echo $users_ID_count; 
+1

У вас есть console.log ваше текстовое значение? это может быть объект, тогда это может быть что-то вроде text.XXX – PHPology

+0

Можете ли вы добавить код blog-signup-srvr-4.php, чтобы мы могли видеть, что возвращается? – versalle88

ответ

2

Возможно, в вашем АЯКС файле вы можете создать сеанс с идентификатором пользователя, как:

<?php session_start(); $_SESSION["userID"] = $users_ID_count; ?> 

И файл «блог-регистрация-propic.php» может начать путем извлечения идентификатор_пользователя из этой сессии:

<?php 
if(isset($_SESSION["userID"])) { $disatl = $_SESSION["userID"]); } else { $disatl = ""; } 
?> 

Таким образом, вы также можете избежать параметров на URL-адресе. Кроме того, когда ваш скрипт будет сделано, вы можете сбросить эту сессию:

<?php 
unset($_SESSION["userID"]); 
?> 

И, наконец, измените JavaScript на это:

... 
success: function(text){ 
    window.location.assign('http://localhost/knoxPrograms/knoxville_programmers/blog-signup-propic.php'); 
} 
... 

Конечно переменные, показанные здесь, могут отличаться от тех, что подать заявку на ваш проект. Но я думаю, вы можете это исправить :)

Надеюсь, это поможет ...

+0

Я предполагаю, что на практике я мог бы считаться nube, я просто иду неортодоксальным способом учить себя, когда университетский профессор более чем вероятно мог бы покрыть $ _SESSIONs от начала, но я прочитал учебник по нему, а $ _SESSION - это точно что будет решать моя проблема! очень признателен! –

+0

@ColinRickels Я рад, что это помогло вам! Счастливое кодирование :) –