2017-04-23 200 views
1

以下是我的示例代碼,希望您能幫助我。我怎樣才能將一個JavaScript變量傳遞給php變量爲什麼即使我選擇取消,它仍然保持彈出狀態?如何將JavaScript確認變量傳遞給php變量

的JavaScript

var jsChoose = confirm("are you sure?"); 

PHP

$phpChoose = "<script>document.write(jsChoose);</script>"; 
if($phpChoose==True){ 
    echo "true"; 
} 
else{ 
    echo "false"; 
} 
+3

[如何將JavaScript變量傳遞給PHP?](http:// stackoverflow。COM /問題/ 1917576 /如何對通過JavaScript的變量到PHP) – 4castle

回答

2

一個最好的方式傳遞informati從客戶端(JS)到服務器端(PHP)是使用html form。如果您不希望用戶看到它,則html表單可以是網頁中的hidden
你想要這個表格爲POST PHP腳本所需的信息。
例如,您想將boolean變量傳遞給從確認框中捕獲的服務器端。因此,讓我們使用從確認框返回的值將表單POST到服務器端。

HTML表單:

<form id="myForm" action="testBoolean.php" method="post"> 
     <input type="hidden" id="inputBoolean" value="5" name="boolean"> 
</form> 

的JavaScript(把這個下方的形式,如果你沒有,你可能會得到錯誤)

<script> 
var jsChoose = confirm("are you sure?"); 

document.getElementById("inputBoolean").value = jsChoose; 

document.getElementById("myForm").submit(); 
</script> 

,現在你需要調用的PHP頁面「 testBoolean.php「,並在其中檢索發佈的信息。對於這個演示,它將簡單地回顯你的確認框給出的POSTed布爾變量的值。

testBoolean.php:

<?php 
$boolean= htmlspecialchars($_POST['boolean']); 

echo $boolean; 

?> 

記住什麼是$_POST['']括號內的是,您所提交的您的輸入字段的name。 希望這有助於,祝你好運和最好的問候。

2

使用AJAX功能,並通過發送變量到PHP

$.ajax({ 
    type: "POST", 
    url: "file url with php", 
    data: {myVariable:value}, 
    complete: function(data){ 
     console.log(data); 
    } 
}); 
0

還有使用查詢字符串另一種方式,具體如下:

<?php 
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != null) { 
    $qs = htmlentities($_SERVER['QUERY_STRING']); 
    list(,$ans) = explode("=",$qs); 
    if ($ans) { 
     echo "Your answer is $ans. "; 
    } 
    exit("Thank you"); 
} 
?> 

你可以把PHP代碼在網頁的頂部,隨後是包含以下的JavaScript的HTML:

<script> 
var ans = false; 
if(ans = confirm("Are you sure?")) { 
    this.location += "?answer=" + ans; 
} 
else 
{ 
    document.write("Action cancelled since you seem unsure"); 
} 
</script> 

儘管Ajax非常優雅,但動態生成包含該變量的查詢字符串也是一個可行的選項。如果需要,你可以張貼的查詢字符串沒有硬編碼通過利用stream_context_create()的形式另一個頁面,如下:

<?php 
error_reporting(E_ALL); 

if (isset($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] != NULL)) 
{ 
    $url = 'http://www.example.com/some_page.php'; 
    $qs = htmlentities($_SERVER['QUERY_STRING']); 
    list($key,$value) = explode("=",$qs); 
    $arr = array($key => $value); 
    $options = array(
    'http'=>array(
     'method'=>"POST", 
     'header'=> 
     "Accept-language: en\r\n". 
     "Content-type: application/x-www-form-urlencoded\r\n", 
     'content'=>http_build_query($arr) 
)); 

    $context = stream_context_create($options); 

    $fp=fopen($url,'rb',false,$context); 
    fpassthru($fp); 
    fclose($fp); 
    exit; 
} 
?> 

在所需的網址,你只需要添加一個腳本,顯示內容,如:

<?php 
var_dump($_POST['answer']);