2016-04-27 19 views
0

我想回復PHP變量$last_id到AJAX將它傳遞到PHP $_POST。也許我可以一起跳過AJAX,只需在$_POST內傳輸變量即可。我必須使用echo json_encode嗎?AJAX內部的PHP代碼到郵政

這裏是我的代碼,看看有什麼我想在這裏完成(任何幫助讚賞):

registration.php的

<?php 
if(isset($_POST['submit'])) { 
require 'connect.php'; 

$sql = "INSERT INTO table (username, password) VALUES ('".$_POST["username"]."','".$_POST["password"]."')"; 

if (mysqli_query($con, $sql)) { 
$last_id = mysqli_insert_id($con); 
    echo $last_id; 
?> 

myScript.js

// ----AJAX Post to PHP-----> 
function ajax_post(ele,div){ 
// XMLHttpRequest object 
var hr = new XMLHttpRequest(); 

// variables send to PHP file 
var url = "insert.php"; 
var userId = "<?php echo $last_id; ?>"; 
var vars = "userId="+userId; 
hr.open("POST", url, true); 
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
hr.onreadystatechange = function() { 
    if(hr.readyState == 4 && hr.status == 200) { 
     var return_data = hr.responseText; 
     document.getElementById("status").innerHTML = return_data; 
     } 
    } 
} 

insert.php

<?php 
require 'connect.php'; 

$userId = $_POST['userId']; 

$sql = "INSERT INTO table2 (userId) 
VALUES ('$userId')"; 
?> 
+1

不要忘記在userId之前放置&amp;字符:var vars =「imgName =」+ SOMETHING_IS_MISSING_HERE +「&userId =」+ userId; – Ashraf

+4

夫婦的事情,不要直接在查詢中添加變量,如''INSERT INTO table(username,password)VALUES('「。$ _ POST [」username「]。」','「。$ _ POST [」password「] 。'')「'或這個''INSERT INTO table2(userId) VALUES('$ userId')」'。這是一個安全缺陷。 – Rasclatt

+3

另外,你的'myScript.js'不能解析php,所以這個'<?php echo $ last_id; ?>'不能工作。 – Rasclatt

回答

0

你好,這是你可以通過PHP變量到外部js文件,

<?php 
$last_id= "Red"; 
?> 
<script type="text/javascript">var color = "<?= $last_id?>";</script> 
<script type="text/javascript" src="myscript.js"></script> 

嘗試,讓我知道

+0

這就是我在我的數據庫中得到的<?= $ last_id?>我需要在我的情況下傳輸mysqli_insert_id數據... –

+0

@謝爾蓋M.對不起錯字'' – JiteshNK

0

隨着你貼的代碼你缺少hr.send(vars)和我看到您的$last_id即將登記註冊。所以我建議你將該值存儲在會話中,然後在使用和ajax調用後如果需要銷燬會話。

<?php 
if(isset($_POST['submit'])) { 
require 'connect.php'; 

$sql = "INSERT INTO table (username, password) VALUES ('".$_POST["username"]."','".$_POST["password"]."')"; 

if (mysqli_query($con, $sql)) { 
$last_id = mysqli_insert_id($con); 
session_start(); 
$_SESSION['last_id'] = $last_id; 
?> 

// ----AJAX Post to PHP-----> 
function ajax_post(ele,div){ 
// XMLHttpRequest object 
var hr = new XMLHttpRequest(); 

// variables send to PHP file 
var url = "insert.php"; 
var vars = "userId=<?php echo $_SESSION['last_id']; ?>"; 
hr.open("POST", url, true); 
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
hr.onreadystatechange = function() { 
if(hr.readyState == 4 && hr.status == 200) { 
    var return_data = hr.responseText; 
    document.getElementById("status").innerHTML = return_data; 
    } 
    } 
} 
hr.send(vars);