c9 - 如何从脚本标签中 运行 php 函数?
c9 - How to run php function from script tag?
我用的是云9平台。
我有 php 文件,其中有几个函数调用 phpFunctions.php:
<?php
$servername = "127.0.0.1";
$username = "oshrat";
$password = "";
$database = "myDB";
$dbport = 3306;
// Create connection
//$conn = new mysqli($servername, $username, $password);
$conn = new mysqli($servername, $username, $password, $database, $dbport);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// echo "Connected successfully";
mysql_select_db("myDB",$conn);
function createNewUser() {
echo "Hello world!";
}
function checkUser($name) {
echo "Hello world!";
}
?>
从表单我有一个按钮,当 onclick 事件发生时,我需要 运行 函数 checkUser。
login.php 文件:
<html lang="en-us">
<head>
<meta charset="utf-8">
<?php include_once 'phpFunctions.php';?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<div style="float:left; margin-right:45px;">
<button id="startButton" class="controlButtons" type="button" target="framework" style="margin-left:30vw;">Go To Play</button>
</div>
</body>
<script type="text/javascript">
$("#startButton").click(function(){
var p1Name = $("#namePlayer1").val();
var p2Name = $("#namePlayer2").val();
//check if the two players enter the name
if(p1Name == "" || p2Name == "")
{
alert("You Must Enter Two Players Name");
}
else
{
var result = "";
jQuery.ajax({
type: "POST",
url: 'phpFunctions.php',
dataType: 'json',
data: {functionname: 'checkUser'},
success: function (obj, textstatus) {
if( !('error' in obj) ) {
// result = obj.result;
alert("success");
}
else {
// console.log(obj.error);
alert("error");
}
}
});
}
}
});
</script>
</html>
ajax 调用无效。
预先感谢您的帮助。
试试这个:
<html lang="en-us">
<head>
<meta charset="utf-8">
<?php include_once 'phpFunctions.php';?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<div style="float:left; margin-right:45px;">
<button id="startButton" class="controlButtons" type="button" target="framework" style="margin-left:30vw;">Go To Play</button>
</div>
</body>
<script type="text/javascript">
$("#startButton").click(function(){
//two players mode
//if(parent.modeGame == 1)
//{
console.log(parent.modeGame, $("#namePlayer1").val(), $("#namePlayer2").val()); //this will probably log undefined 3 times...
/*var p1Name = $("#namePlayer1").val();
var p2Name = $("#namePlayer2").val();
//check if the two players enter the name
if (p1Name == "" || p2Name == "") {
alert("You Must Enter Two Players Name");
}
else
{*/
$.post('phpFunctions.php', {functionname: 'checkUser'}).done(function(data) {
console.log(data);
}).fail(function(err) {
console.log(err);
});
// }
//}
});
</script>
</html>
您的 if 语句似乎使您的 ajax 调用无法从 运行 调用。我已经为您注释掉了它们,您可以使用 console.log
查看它们的值。我还将您的 ajax
调用更改为更简洁的 post
函数
然后像这样更改您的 php 文件:
<?php
$servername = "127.0.0.1";
$username = "oshrat";
$password = "";
$database = "myDB";
$dbport = 3306;
// Create connection
//$conn = new mysqli($servername, $username, $password);
$conn = new mysqli($servername, $username, $password, $database, $dbport);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// echo "Connected successfully";
mysql_select_db("myDB",$conn);
if ($_POST["functionname"] == "checkUser") {
checkUser("sample name"); //replace sample name with $_POST['name'] or something like that when you want to actually check a name
}
function createNewUser() {
echo "Hello world!";
}
function checkUser($name) {
echo "User ".$name." checked";
}
?>
我用的是云9平台。 我有 php 文件,其中有几个函数调用 phpFunctions.php:
<?php
$servername = "127.0.0.1";
$username = "oshrat";
$password = "";
$database = "myDB";
$dbport = 3306;
// Create connection
//$conn = new mysqli($servername, $username, $password);
$conn = new mysqli($servername, $username, $password, $database, $dbport);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// echo "Connected successfully";
mysql_select_db("myDB",$conn);
function createNewUser() {
echo "Hello world!";
}
function checkUser($name) {
echo "Hello world!";
}
?>
从表单我有一个按钮,当 onclick 事件发生时,我需要 运行 函数 checkUser。
login.php 文件:
<html lang="en-us">
<head>
<meta charset="utf-8">
<?php include_once 'phpFunctions.php';?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<div style="float:left; margin-right:45px;">
<button id="startButton" class="controlButtons" type="button" target="framework" style="margin-left:30vw;">Go To Play</button>
</div>
</body>
<script type="text/javascript">
$("#startButton").click(function(){
var p1Name = $("#namePlayer1").val();
var p2Name = $("#namePlayer2").val();
//check if the two players enter the name
if(p1Name == "" || p2Name == "")
{
alert("You Must Enter Two Players Name");
}
else
{
var result = "";
jQuery.ajax({
type: "POST",
url: 'phpFunctions.php',
dataType: 'json',
data: {functionname: 'checkUser'},
success: function (obj, textstatus) {
if( !('error' in obj) ) {
// result = obj.result;
alert("success");
}
else {
// console.log(obj.error);
alert("error");
}
}
});
}
}
});
</script>
</html>
ajax 调用无效。 预先感谢您的帮助。
试试这个:
<html lang="en-us">
<head>
<meta charset="utf-8">
<?php include_once 'phpFunctions.php';?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<div style="float:left; margin-right:45px;">
<button id="startButton" class="controlButtons" type="button" target="framework" style="margin-left:30vw;">Go To Play</button>
</div>
</body>
<script type="text/javascript">
$("#startButton").click(function(){
//two players mode
//if(parent.modeGame == 1)
//{
console.log(parent.modeGame, $("#namePlayer1").val(), $("#namePlayer2").val()); //this will probably log undefined 3 times...
/*var p1Name = $("#namePlayer1").val();
var p2Name = $("#namePlayer2").val();
//check if the two players enter the name
if (p1Name == "" || p2Name == "") {
alert("You Must Enter Two Players Name");
}
else
{*/
$.post('phpFunctions.php', {functionname: 'checkUser'}).done(function(data) {
console.log(data);
}).fail(function(err) {
console.log(err);
});
// }
//}
});
</script>
</html>
您的 if 语句似乎使您的 ajax 调用无法从 运行 调用。我已经为您注释掉了它们,您可以使用 console.log
查看它们的值。我还将您的 ajax
调用更改为更简洁的 post
函数
然后像这样更改您的 php 文件:
<?php
$servername = "127.0.0.1";
$username = "oshrat";
$password = "";
$database = "myDB";
$dbport = 3306;
// Create connection
//$conn = new mysqli($servername, $username, $password);
$conn = new mysqli($servername, $username, $password, $database, $dbport);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// echo "Connected successfully";
mysql_select_db("myDB",$conn);
if ($_POST["functionname"] == "checkUser") {
checkUser("sample name"); //replace sample name with $_POST['name'] or something like that when you want to actually check a name
}
function createNewUser() {
echo "Hello world!";
}
function checkUser($name) {
echo "User ".$name." checked";
}
?>