1

実行時に、セッション ユーザーの章の値のみを 1 に更新する関数を作成しました。これが作成され、chapcomp.phpというファイルに保存されたものです。

<?php
$con = (my connection info is here)

$sql = "UPDATE users
SET chapter= '1'
WHERE username="'.$_SESSION['username'].'""

mysql_query($sql,$con);
?>

以下に、php sql クエリを呼び出す関数を投稿しました。

function ChapComp() {
var xmlHttp = null;

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "chapcomp.php", false );
xmlHttp.send( null );
// return xmlHttp.responseText;

そして、このボタンを使用して関数を呼び出します。

<br><a href='#' onclick='ChapComp();'>Complete Chapter One!</a><br>

ボタンをクリックしても何も起こらず、データベースの章の INT 値は変更されません。

4

4 に答える 4

1

ionutvmi が述べたように、ブラウザからはどのような種類の PHP プログラムも実行できません。

Javascript はブラウザー (またはその他の js インタープリター) 内で使用され、データ (users テーブル) を保存したり、php プログラムを実行したり、その他のサーバー側関連アクションを実行したりするサーバーとは何の関係もありません。

ここに違いを説明する素敵な投稿があります

于 2013-04-02T21:13:57.637 に答える
0

実装され、次の方法で(クロムでチェックされた)あなたがやろうとしていることを行います:

file1:次のコンテンツを含む view.html (HTML を整形する必要があります):

<script type="text/javascript">
function ChapComp() {
 var xmlHttp = null;
 xmlHttp = new XMLHttpRequest();
 xmlHttp.open( "GET", "chapcomp.php", false );
 xmlHttp.send( null );
}
</script>
<br><a href='#' onclick='ChapComp();'>Complete Chapter One!</a><br>

file2:次の内容のchapcomp.php :

<?php
session_start();
// TODO: remove next line
$_SESSION['username'] = 'test';

$con = mysql_connect( 'localhost', 'dbuser', 'dbpassword') or die('Could not connect to mysql server.' );
mysql_select_db('db_name', $con) or die('Could not select database.');

$sql = "UPDATE users
SET chapter= '1'
WHERE username='".$_SESSION['username']."'";

$result = mysql_query($sql, $con);
?>

削除してください

 $_SESSION['username'] = 'test';

あなたの場合、 $_SESSION['username'] は空ではないと思います。

于 2013-04-02T22:14:25.420 に答える
0

私が見る限り、jsを使用してphp関数を呼び出そうとしていますが、これは間違っています。

PHPコードを呼び出したい場合は、それを別のファイルに保存し、javascriptを使用してそのファイルにリクエストを行います。

PS: session_start(); 出力の前に配置する必要があります

編集:ここに短い例があります

function ChapComp()
{
var xmlHttp = null;

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "somepage.php", false );
xmlHttp.send( null );
// return xmlHttp.responseText;
}

somepage.phpSQLクエリを実行する場所はどこですか

于 2013-04-02T20:36:33.397 に答える
0
"UPDATE users
    SET chapter='1'
    WHERE username='".$_SESSION['username']."'"
于 2013-04-02T20:01:35.663 に答える