0

イントラネットサイトのphpディレクトリに簡単な「これを見た」関数を作成しようとしています。

したがって、ユーザーがページを読んだら、下部にある「これを読みました」というボタンをクリックして、ユーザーのユーザーIDとページIDを単純なデータベーステーブルに送信し、他の用途に使用できるようにします。

私はAJAXとPHPでそれをやろうとしています。

これが私のコードです:

<SCRIPT LANGUAGE="JavaScript">
function viewSave(form) {
var itemid = <?php echo $itemid; ?>;
var userid = <?php echo $userid; ?>;

var xmlhttp;

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

 xmlhttp.open("GET","saveView.php?q=itemid="+itemid+"&userid="+userid,true);
 xmlhttp.send();
}

</script>   

そして、私は隠しフィールドを持つ単純なフォームを設定しました:

<form onSubmit="return viewSave(this)" >
<input type="submit" name="submit" value="Save" />
</form>

[送信]をクリックすると、URLが変更され、次のような変数が取得されます。

thispage.php?itemid = 455&userid = 999&submit=保存

ただし、「saveView.php」は呼び出されず、データは送信されません。

saveView.phpの内容は次のとおりです。

<?php


$userid =$_GET["userid"];
$itemid = $_GET["itemid"];

  // Connect to the database
            $dbc = mysqli_connect('localhost', 'root', '', 'viewsave');

            // Write the data to the database
            $query = "INSERT INTO saves (entryID, userid, itemid) VALUES ( '0', '$userid', '$itemid')";
            mysqli_query($dbc, $query);

?>

URLパラメータはフォームのせいでしか表示されておらず、JavaScriptに何か問題があると思います。

私はJSの初心者です。

感謝します。

レイ。

4

1 に答える 1

1

まず、phpファイルには名前が必要です。

xmlhttp.open("GET","save.php?

次に、パラメーターに名前が必要です。

xmlhttp.open("GET","save.php?q=itemid="+itemid+"&userid="+userid,true);

次に、PHP$_GETでデータを取得するために使用できます(そしてそれが数値であることを確認します):

if(array_key_exists('itemid', $_GET) && !is_nan($_GET['itemid'])) {
    $itemid = $_GET['itemid'];
}
于 2013-02-05T20:44:29.003 に答える