首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在提交按钮上运行php代码,而无需刷新/重新加载页面

问如何在提交按钮上运行php代码,而无需刷新/重新加载页面
EN

Stack Overflow用户
提问于 2012-11-26 14:06:15
回答 3查看 17K关注 0票数 1

我想在提交按钮上执行一些php代码,而不刷新/重新加载我的页面。有可能吗?此外,我有javascript功能的页面加载,这就是为什么我不想刷新我的页面。提前谢谢。

代码语言:javascript
复制
<?php
if(isset($_POST["search"]))
{
$show = "SELECT * FROM data";
$rs = mysql_query($show) or die(mysql_error());
 $add_to_textbox = "<input type='button' name='btn' value='add' />";
#****results in Grid****
    echo "<table width='360px' border='1' cellpadding='2'>";
    $rowID=1;
while($row = mysql_fetch_array($rs))
{
    echo "<tr>";
    echo "<td width='130px' id='name.$rowID.'>$row[Name]</td>";
    echo "<td width='230px' id='link.$rowID.'><a href = '$row[Link]'>$row[Link]</a></td>";
    echo "<td width='130px' onclick='Display($rowID);'>$add_to_textbox</td>";
    echo "</tr>";
    $rowID++;
}
    echo "</table>";
#**********************
mysql_free_result($rs);
}
?>

<script type="text/javascript">
function Display(rowID){
    var linkVal = document.getElementById('link'+rowID+'').innerHTML.replace(/<\/?[^>]+(>|$)/g, "\n");
    document.getElementById("name").value = document.getElementById('name'+rowID+'').innerHTML;
    document.getElementById("link").value = linkVal; 
    }
</script>

以下是我的代码

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-26 14:13:10

那么,您需要使用javascript / ajax。

示例:在提交链接(示例中的href )上,添加对js函数submitMe的调用,并传递所需的任何变量

代码语言:javascript
复制
function submitMe() {
    jQuery(function($) {    
        $.ajax( {           
            url : "some_php_page.php?action=getsession",
            type : "GET",
            success : function(data) {
                alert ("works!"); //or use data string to show something else
                }
            });
        });
    }

如果你想动态改变一些内容,这很简单-你只需要创建标签,并为它们分配ID:<div id="Dynamic"> </div>

然后使用以下命令加载这两个标记之间的任何内容

代码语言:javascript
复制
document.getElementById("Dynamic").innerHTML = "<b>BOOM!</b>";

这意味着你调用两个标签之间的区域,并将一些东西加载到其中。与从该位置获取数据的方式相同:

代码语言:javascript
复制
alert(document.getElementById("Dynamic").innerHTML);

请阅读以下内容:http://www.tizag.com/javascriptT/javascript-getelementbyid.php

此外,尝试使用DOM元素,并了解它们是如何交互的。这并不难,只是需要一些时间来掌握所有的概念。

票数 7
EN

Stack Overflow用户

发布于 2012-11-26 14:35:09

无论何时从html表单发送请求ajax (无论如何使用纯js ),请确保添加return false语句以防止重定向:如下所示:

代码语言:javascript
复制
<form method="post" ... onsubmit="ajax_post(); return false;">

你必须使用ajax,但是你可以用普通的javascript (没有jquery)来做。Jquery让这一切变得更容易。

简单的javascript示例:这个函数将触发一个ajax,通过get,没有参数:你可以调整它,让它在POST中运行,并能够发送一些参数: file表示要请求的php文件,html表示显示数据的容器:

代码语言:javascript
复制
function plain_ajax(file,html){
    if (window.XMLHttpRequest){ 
          r=new XMLHttpRequest();   //For Most BRowser
    } else{ 
          r=new ActiveXObject("Microsoft.XMLHTTP");  //for Explorer
    }

    //When the state change
    r.onreadystatechange=function(){ 
       //ReadyState 4 = Loaded     see: http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/
       //status 200 = ok           see: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
       if(r.readyState==4 && r.status==200){
           //Replace the content with the response, Using creatDocumentFragment is more efficient 
           //at the cost of a few more lines But it  would alos allow you to append the data
           //instead of replacing it using innerHTML;
           document.getElementById(html).innerHTML = r.responseText;
        }
    }

    //Opening the connection and sending the request.
    r.open("GET",file,true); 
    r.send();
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-11 14:37:58

您的HTML或PHP表单

代码语言:javascript
复制
<form action="submit.php"  method="post">
Name: <input name="name" id="name" type="text" /><br />
Email: <input name="email" id="email" type="text" /><br />
Phone Number: <input name="phone" id="phone" type="text" /><br />
<input type="button" id="searchForm" onclick="SubmitForm();" value="Send" />
</form>

你的JavaScript

代码语言:javascript
复制
 <script>
 function SubmitForm() {
 var name = $("#name").val();
 var email = $("#email").val();
 var phone = $("#phone").val();
 $.post("submit.php", { name: name, email: email, phone: phone },
 function(data) {
 alert("Data Loaded: " + data);
 });
 }
 </script>

您的PHP页面要做一些活动

代码语言:javascript
复制
 <?php
 echo $_POST['name']."<br />";
 echo $_POST['email']."<br />";
 echo $_POST['phone']."<br />";
 echo "All Data Submitted Sucessfully!"
 ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13559489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档