2016-04-27 9 views
0

PHP $last_idをAJAXにエコーしてPHP $_POSTに渡そうとしています。私は一緒にAJAXをスキップして、$_POSTの変数を転送するだけかもしれません。 echo json_encodeを使用する必要がありますか?ここで AJAXからPOSTへの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

ユーザIDの前に&amp;文字を入れないでください:var vars = "imgName =" + SOMETHING_IS_MISSING_HERE + "&userId =" + userId; – Ashraf

+4

いくつかの事柄は、INSERT INTOテーブル(ユーザ名、パスワード)VALUES( ''; $ _ POST ["username"]。 "'、'"のようにクエリに直接変数を追加しないでください。 ( "$ userId ')" 'のように入力してください。これはセキュリティ上の欠陥です。 – Rasclatt

+3

また、あなたの 'myScript.js'はPHPを解析できませんので、この' <?php echo $ last_id; ?> 'は動作しません。 – Rasclatt

答えて

0

こんにちは、これは、あなたがjsの外部ファイルにPHPの変数を渡すことができる方法である

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

試してみて、私はあなたがhr.send(vars)が欠けていると私は見ていて、あなたの投稿コードとして

+0

これは私のデータベースにあるものです<?= $ last_id?>私はmysqli_insert_idデータを私の場合に転送する必要があります... –

+0

@ Sergey M. sorry typo ' ' – JiteshNK

0

をお知らせあなたの$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); 
関連する問題