2015-07-11 31 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

相關問題