【问题标题】:Post Back response from PHP to javascript从 PHP 向 javascript 回发响应
【发布时间】:2010-11-15 00:25:26
【问题描述】:

我是表单和发布数据的新手......所以我不知道如何解决这个问题!

我有一个表单简单的 php 页面(page1):

<form method="post" action="/page2.php">
<input type="search" value="E-Mail Address" size="30" name="email" />
<input type="submit" value="Find E-Mail" />
</form>

您如何注意到...此表单将“电子邮件”值发布到 page2。在 page2 中有一个小脚本,可以在数据库中查找以检查电子邮件地址是否存在。

$email = $_POST['email'];

$resut = mysql_query("SELECT * FROM table WHERE email = $email");
.   
.
.
/* do something */
.
.
.

if($result){
    //post back yes
}
else{
   //post back no
}

我不知道如何在 php 中返回帖子!以及如何从显示报告搜索结果的警报的 javascript 方法中读取回发数据?

这只是我想要做的一个例子,因为我的 page2 在回帖之前做了一些其他的操作。

当我单击提交按钮时,我正在尝试为旋转指示器设置动画……这就是我需要回发到 javascript 方法的原因!因为javascript函数应该停止动画并弹出带有搜索结果的警报!

提前非常感谢!

【问题讨论】:

    标签: php javascript post postback


    【解决方案1】:
    <?php 
    

    echo " alert('记录已插入 ');" 要么 echo "document.getElementByID('tagname').innerHtml=$result;" ?>

    或 包括“您的 Html 文件名”

    【讨论】:

      【解决方案2】:

      您好,我认为您可以通过两种方式处理它。

      第一个是提交表单,将数据保存在会话中,检查电子邮件,重定向 返回您的表单并显示会话的结果和数据。

      喜欢

      session_start();
      
      // store email in session to show it on form after validation
      $_SESSION['email'] = $_POST['email'];   
      
      // put your result in your session
      if ($results) { 
          $_SESSION['result'] = 'fine';
          header(Location: 'yourform.php'); // redirect to your form
      } 
      

      现在在表单中添加一些 php 代码:

      <?php 
      
      session_start();
      
      // check if result is fine, if yes do something..
      if ($_SESSION['result'] == 'fine) {
          echo 'Email is fine..';
      } else {
          echo 'Wrong Email..';
      }
      
      ?> 
      

      更多信息:Sessions & Forms

      然后将电子邮件值放回表单字段中

      <input type="search" 
       value="<?php echo $_SESSION['email']; ?>" 
       size="30" 
       name="email" />
      

      请原谅我的英语,我知道这太可怕了;)

      另一个是 ajax 东西,在我之前有一些答案!

      【讨论】:

      • 谢谢!您的解决方案很好,但是!有没有办法将搜索结果发送到java脚本?因为,我还尝试在搜索开始时为旋转指示器设置动画,并且我想在回发数据到达时停止它!
      【解决方案3】:

      作为旁注,您绝对应该在 SQL 请求中使用数据之前对其进行转义,以避免SQL injection

      当您使用 mysql_* 函数时,可以使用以下函数之一来完成:

      【讨论】:

        【解决方案4】:

        在这种情况下您将无法发布,因为它是从服务器到客户端的。有关 POST 的更多信息,请查看this article

        要回答您的问题,您需要在完成查询后执行以下操作:

        if(mysql_num_rows($result)){ //implies not 0
           $data = mysql_fetch_array($result);
           print_r($data);
        }
        else{
        //no results found
        echo "no results were found";
        }
        

        print_r 函数只是打印查询将返回的所有结果,您可能希望使用一些 html 对其进行格式化。 $data 只是一个数组,您可以像这样打印单个元素:

        echo $data['email'];
        

        我希望这会有所帮助!

        【讨论】:

          【解决方案5】:

          我建议你阅读AJAX

          Here's a PHP example 在 W3Schools 上详细介绍了 AJAX 命中。

          【讨论】:

          • 感谢您的回复!但是我不能直接从 java 中获取我的数据库!我需要发布到 page2 (php) 而不是回发到 page1 应该是接收回帖的 javascript!
          • @BitDrink:正如教程应该说明的那样,您可以从 page1.php 向 page2.php 发送异步命中,它会返回您的电子邮件验证结果,您可以在 page1.php 上显示该结果而无需(似乎)发回或离开 page1.php。
          • ...这就是 AJAX 的全部意义所在! :-)
          猜你喜欢
          • 2015-05-13
          • 2018-09-11
          • 1970-01-01
          • 2012-04-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-05
          相关资源
          最近更新 更多