2016-04-27 57 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);