【问题标题】:using javascript and php together to validate一起使用javascript和php来验证
【发布时间】:2012-04-26 02:16:47
【问题描述】:

如何同时使用 php 和 javascript?从我自己的研究来看,这似乎是不可能的。我知道他们是不同的,他们每个人都有自己做的特别的事情。但是,假设您正在验证一个表单。您使用 javascript 验证表单,然后如果没有错误,则运行 php 插入记录。你会怎么做?有没有办法在javascript中运行php或调用php方法?

【问题讨论】:

  • 我认为您需要了解一下“客户端”和“服务器”之间的区别,以及代码实际运行的位置。
  • 有一些方法可以同时使用 javascript 和 php(例如,通过 AJAX 调用 - 您可以让 javascript 触发/运行 php 函数),但@Cameron 是对的 - 每个都有一个地方。例如,您永远不会基于 Javascript 验证在数据库中插入记录 - 您将始终使用 php 在服务器端验证数据。
  • 您可以在 html 或 javascript 中嵌入 php 代码。服务器在将其发送到客户端之前查看两者,剥离并执行 php 代码。正如卡梅伦所说,做一些阅读。只需谷歌诸如 html 中的 php 代码之类的东西。

标签: php javascript


【解决方案1】:

通常您会看到 Javascript 被用作 客户端 代码。这意味着访问您网站的浏览器将下载您的 Javascript 代码、编译并自行运行。客户端代码仅仅意味着客户端(访问您网站的人)运行代码。

另一方面,PHP 被用作服务器端 代码。这意味着您的 Web 服务器会解析并运行您的代码。服务器端代码只是意味着代码在您的 Web 服务器上运行。

您可以从 PHP 代码向 Javascript 提供信息。例如:

<?php
    $myVariable = 'a testing variable';
?>
<script type='text/javascript'>
    var fromTheServer = '<?php echo $myVariable; ?>';
</script>

Javascript 变量 fromTheServer 设置为 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>

好的,现在您可以非常简要地了解 php 和 Javascript 是如何工作的如果 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

【讨论】:

    【解决方案2】:

    您需要在 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/

    【讨论】:

      【解决方案3】:

      您可以使用 javascript 验证并使用 php 插入记录。但是,如果您将使用 javascript 和 php 验证记录会更好。为什么?因为当您在浏览器中关闭 javascript 时,javascript 验证将无用,这意味着,如果浏览器 javascript 关闭,则不会运行任何验证,这意味着无效记录将被插入到您的数据库中。所以最好有一个备份的php验证。

      【讨论】:

      • 单独做php验证没问题。但是,如果您不希望您的网站在每次出现验证/错误时都刷新/重新加载,则可以使用 javascript 验证。
      【解决方案4】:
      <?php
        if(PHP VALIDATION) {
          echo 'You were not validated';
        } else {
          echo "<script src=\"FILE WITH UR JAVASCRIPT\"><script>"
        }
      ?>
      

      只有在 php 验证完成后才会加载和执行此 javascript。

      【讨论】:

        【解决方案5】:

        让我们举个简单的例子: 给出的示例使用 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']; 或 $_POST['密码'];等等

        以上答案(由其他人建议)是完美的,因为它们暗示了您创建同步 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;
        

        【讨论】:

        • $('#save_button').click((){ 有一个错误。如果你能帮我解决它,因为我不熟悉,谢谢!:)
        猜你喜欢
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多