2011-12-29 28 views
1

JSからPHPへの値渡しに問題があり、PHP関数のパラメータとして使用できるようになりました。リンクがクリックされると、JS関数はonclickイベントによってトリガーされます。JSからPHPへの変数値の受け渡し

<script type="text/javascript"> 
    function insertIntoDb() { 
     $.GET OR POST("insert.php"); 
     return false; 
    } 
</script> 

<a href="#" onclick="insertIntoDb();">INSERT MY USERNAME</a> 

PHP(insert.php):ここでJS + HTMLコードです

<?php 
    session_start(); 

    function insert($username){ 
     $username = mysql_real_escape_string($username); 
     $query = mysql_query("INSERT INTO List(Username) VALUES('$username')") or die(mysql_error()); 
    } 

    if(isset($_POST['Username'])){ 
     insert($_POST['Username']); 
    } 
?> 

が私を助けることができる1をありがとう..私はそうPHPとJSに非常に新しいですしてください私の愚かさを許してください。

+0

あなたのユーザー名に100万ポイントを追加できます。私はちょうど私が自分自身を訓練したかもしれないことに激しく笑った。しかし、答えはありません。ごめんなさい。 –

+4

ここにはかなり重要なセキュリティ上の欠陥があります。人がサーバにHTTPリクエストを送ることができないことを何とかしておく必要があります。それはあなたの人生を傷つける可能性があるため、データベースにデータを挿入します。 –

+0

@MatthewPatrickCashatt私のユーザーネームは何ですか? :) –

答えて

0

ブラウザからサーバーにデータを渡します。 Javascriptはブラウザを操作するための言語です。 PHPはサーバー側の言語です。

次のようなGETまたはPOSTリクエストでデータを渡すことができます「mypage.php?ユーザ名=ジョン」ユーザー

<script type="text/javascript"> 
    function insertIntoDb() { 
     document.getElementById("myform").submit(); 
     //or if you want to use jquery and ajax 
     $.post("insert.php", $("#myform").serialize()); 
     return false; 
    } 
</script> 

<form id="myform" method="post" action="insert.php"> 
    <a href="#" onclick="insertIntoDb();">INSERT MY USERNAME</a> 
    <input type="text" name="Username"></input> 
</form> 
1

と対話できるように、何が欲しいのは、フォームがある

index.htmlを

<script src="http://code.jquery.com/jquery-latest.min.js" type='text/javascript'></script> 
<script> 
    $(document).ready(function(){ 
     $("#insert").click(function(event){ 
      $.post('insert.php',{username:$(this).html()}); 
     }) 
    }); 
</script> 
<a href='javascript:void(0);' id='insert'>Username</a> 

insert.php

<?php 
function insert($username){ 
    $conn = mysql_connect("host","user","passwd"); 
    if($conn){ 
     $username = mysql_real_escape_string($_POST['username']); 
     $result = mysql_query("INSERT INTO test.user(username) VALUES('".$username."')") or die(mysql_error()); 
     mysql_close($conn); 
    } 
} 
if(isset($_POST['username'])){ 
    insert($_POST['username']); 
} 
?> 
関連する問題