如何一起使用php和javascript?从我自己的研究来看,这似乎是不可能的。我知道他们是不同的,他们每个人都有自己特殊的事情。但是,假设您正在验证表单。你使用javascript来验证表单,然后如果没有错误,你运行php来插入一个记录。你会怎么做?有没有办法在javascript中运行php或调用php方法?
答案 0 :(得分:6)
通常,您会看到用作客户端代码的Javascript。这意味着访问您网站的浏览器将下载您的Javascript代码,编译并自行运行。客户端代码只是意味着客户端(访问您网站的人)运行代码。
另一方面,PHP用作服务器端代码。这意味着您的Web服务器会解析并运行您的代码。服务器端代码只是意味着代码在您的Web服务器上运行。您可以从PHP代码向Javascript提供信息。例如:
<?php
$myVariable = 'a testing variable';
?>
<script type='text/javascript'>
var fromTheServer = '<?php echo $myVariable; ?>';
</script>
来自TheServer 的Javascript变量设置为php变量 myVariable 的值。所有这些实际上正在输出php变量的值作为字符串,Javascript使用。这种方法很有用,比如说你想要用户当前在购物车中购买的Javascript数组购物车项目。
<?php
// get some shopping cart items using a function
$shoppingCartItemsArray = getShoppingCartItems();
?>
<script type='text/javascript'>
var shoppingCartItemsArray = "<?php echo implode('|', $shoppingCartItemsArray); ?>";
// split the string value by the | delimeter to get an array
shoppingCartItemsArray = shoppingCartItemsArray.split('|');
</script>
现在你已经看到了如何将PHP与Javascript集成一下。再一次,这不是集成,只是从服务器输出信息。如何向服务器发送信息?这就是AJAX的用武之地。
假设您正在使用Javascript实现拖放购物车。这个想法是用户从您的网站中挑选一个项目并将其拖到他们的购物车中。放弃该项目后,该项目应添加到服务器上的用户购物车中。您将使用AJAX将项目编号发布到服务器并等待服务器告诉您项目是否已成功添加。注意:您可以使用本机Javascript代码构建自己的AJAX方法,但是,当您可以使用内置的框架时,为什么要这样做呢?我通常使用jQuery,但您可以使用一些other JS frameworks。
以下非常简单的示例显示了在上述情况下与Javascript和php的交互如何。它使用jQuerys $.ajax();
函数。
<?php
/** File: https://www.example.com/cart.php **/
// .. code
if($_POST['action'] === 'addItem'){
$result = addItemToCart($_POST['itemId']);
echo $result;
}
// ... code
?>
<script type='text/javascript'>
// code ....
$.ajax({
url: 'https://www.example.com/cart.php'
type: 'POST',
data: {
action: 'addItem',
itemId: getDraggedItem() // get the item id from a function
}
success: function(result){
$('#ServerMessage').html(result);
}
});
// code ....
</script>
好的,现在你可以非常简单地看看如果 javascript被用作客户端代码,php和Javascript的行为。
Javascript也可以用作服务器端代码,例如IIS allows you to run JScript in tangent with VBScript。
<script type='text/javascript' runat='server'>
Response.Write("MS Server here.")
</script>
除此之外,CommonJS还为许多项目正在实施的服务器端Javascript代码提供API。你可能听说过其中一些,特别是Node.js。其中一个项目可能允许你与其他人一起运行php和javascript,你必须要看。
底线是,Javascript不仅是客户端代码。它只是可以在服务器或客户端上执行的代码,或者是a way to clean up your iTunes library。
答案 1 :(得分:1)
您需要在JavaScript和PHP中进行验证。但最重要的是PHP验证,因为记住:Javascript是前端代码,因此可以被用户修改或简单地禁用。所以在插入之前,你必须用PHP验证。
有数千个javascript验证插件,一个好的是jQuery Validate: http://bassistance.de/jquery-plugins/jquery-plugin-validation/
这里有一个关于PHP验证的例子: http://buildinternet.com/2008/12/how-to-validate-a-form-complete-with-error-messages-using-php-part-1/
答案 2 :(得分:0)
您可以使用javascript验证并使用php插入记录。但是,如果你用javascript和php验证记录会好得多。为什么?因为当您在浏览器中关闭javascript时,javascript验证将毫无用处,这意味着,如果浏览器javascript关闭,则不会运行任何验证,这意味着无效记录将插入到您的数据库中。因此,备份php验证要好得多。
答案 3 :(得分:0)
<?php
if(PHP VALIDATION) {
echo 'You were not validated';
} else {
echo "<script src=\"FILE WITH UR JAVASCRIPT\"><script>"
}
?>
如果php验证完成,这个javascript只会加载并执行。
答案 4 :(得分:-1)
让我们举个简单的例子: 给出的例子使用jquery,你可能会谷歌了。 HTML:
<html>
<body>
<input type = "text" name = "username" id = "username"></input>
<input type = "button" name = "submit" id = "save_button" value = "insert"></input>
<div id = "save_stat"></div> <!--This will be the status of the insertion. "loading or sucess!"---->
<script>
$('#save_button').click(function(){ //assign an event handler
//grab values
var name = $('#username').val(); //get the value of whatever the user entered
//perform HTTP ajax request
//could be $.get instead
$.post('phpfile.php', (name:name)/*this could be modified to (name:name, password: password) etc.*/, function(data){ //send the data to the php file.
$('#save_stat').html(data);
});
});
</script>
</body>
</html>
现在剩下要做的就是创建php注册页面并链接它而不是“phpfile.php” 要加载该文件中的值,请使用$ _POST ['name']; OR $ _POST ['password'];等
以上答案(由他人建议)是完美的,因为它们提出了创建同步Javascript和php应用程序实际需要的本质。
** * 编辑通知 * ** * **** 强> 在创建php时,在给用户消息时使用echo语句,即
if(!empty($_POST['name'])){
echo "You successfully entered your name!";
}else
echo "you forgot to enter a name";
样本#2
if(!empty($_POST['name'])){
$message = "You successfully entered your name!";
}else
$message = "you forgot to enter a name";
echo $message;