2015-07-11 35 views
0

我写了一段代码,当用户点击提交按钮时,它向PHP发送一个字符串,然后我的代码会运行一个Mysql查询(基于提交的字符串),然后使用file_put_content它会将mysqli_fetch_array结果上传到文件。 我想要做的就是不刷新页面,它将值提交给php窗体并运行代码,然后向用户显示<a href="export.csv">Download From Here</a>。 我应该怎么做,使用JavaScript或jQuery?当用户用html提交数据时如何运行PHP代码

if(@$_POST['submit']) { 
     if (@$_POST['export']) { 
      $form = $_POST['export']; 
      echo $form; 
      $con1 = mysqli_connect("localhost", "root", "", "test_pr"); 
      $sql2 = "SELECT email FROM `my_data` WHERE email LIKE '%$form%'"; 
      $result2 = mysqli_query($con1, $sql2); 


      $rows = array(); 
      while ($row = mysqli_fetch_array($result2, MYSQLI_ASSOC)) { 
       $rows[] = $row['email'] . PHP_EOL; 
      } 


      $nn = implode("", $rows); 

      var_dump($rows); 
      echo $nn . PHP_EOL; 


      $file = fopen("export.csv", "w"); 


      file_put_contents("export.csv", $nn); 


      fclose($file); 
     } 
     } 


    ?> 

    <html> 

    <form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method=post> 
     <input name="export" type="text" value="example" /> Export Address<br/> 
     <input name="submit" type="submit" value="submit" /> 
     <a href="export.csv">Download From Here</a> 
    </form> 
    </html> 
+0

你想使用AJAX。 –

+0

如果我想仅在有人提交按钮时才显示链接,该怎么办?没有使用ajax? –

回答

0

看起来你想使用AJAX。

看看这个问题,接受的答案: jQuery AJAX submit form

+0

如果我只想在有人提交按钮时显示链接,该怎么办?没有使用ajax? –

0

假设你知道如何jQuery的包括,你会先绑定提交处理程序提交按钮,(我已经添加了一个id,使它更容易)并防止默认提交操作。然后向处理程序添加一个AJAX发布请求。这将发布到您的PHP文件。让该文件回显你的链接,然后让ajax回调函数将其附加到所需的元素。事情是这样的:

<form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" id="form1" //Add an id to handle with > 
    <input name="export" type="text" value="example" /> Export Address<br/> 
    <input name="submit" type="submit" value="submit" /> 
    <a href="export.csv">Download From Here</a> 
</form> 
<script> 
    $("#form1").submit(function (event) { 
     event.preventDefault(); 
     $.post("//path of your php file here",{inputText: $("input[type='text']")},function (returnedString) { 
      $("#whereToPutReturnedString").append(returnedString); 
     }); 
    }); 
</script> 

另外,如果你想只显示按钮被点击链接时,请执行下列操作:

<script> 
    $("input[type='submit']").submit(function() { 
     $("#idOfElementToPlaceLink").append("<a href="yourlink">Your anchor text</a>"); 
    }); 
</script> 

,或者你可以只是它与CSS或jQuery的隐藏和做$(“#theId”)。show();

如果您需要更多帮助,只需填写!

+0

谢谢,但第二个代码不工作....直到我找出如何包含id没有测试第一部分。我是否需要包含任何文件以使脚本运行?我的知识是关于JavaScript和Ajax的零... –

+0

第二部分不会工作,直到你包含jQuery库,你有没有做到这一点?否则它应该工作,只要你用你想放置锚点的元素的id替换“#idOfElementToPlaceLink”,并用文件路径替换href =“yourlink”即可。如果您想了解更多关于.append()方法及其工作方式的信息,请查看文档:http://api.jquery.com/append/ – Joshua

相关问题