[英]How do I get an array from PHP and use the values in the array?
我在index.html中有一個下拉菜單和javascript。 為了清楚起見,我刪除了大多數選項(超過20種)。 它將下拉菜單選擇發送到engine.php
index.html
<script>
function refreshpage(e)
{
var e = document.getElementById("sr");
var snk = e.options[e.selectedIndex].value;
window.location.href = "engine.php?selectedOption=" + snk;
}
</script>
<h4>Select your option</h4>
<form action="" id="optionform" onsubmit="return false;">
<select class="item_options" id="sr" name='sr' onchange="refreshpage(this);">
<option value="None">Select option</option>
<option value="Option1">Option 1</option>
<option value="Option1">Option 2</option>
<option value="Option1">Option 3</option>
</select>
</form>
當您選擇一個選項時,它將選項發送到engine.php
engine.php
<?php
$option1 = 5;
$option2 = 10;
$final = array($option1, $option2);
if($_GET["selectedOption"] == 'Option1')
{
$option1 = 20;
$option2 = 20;
}
?>
如何將$final
發送回index.html並使用javascript使用$final
數組中的值( $option1
和$option2
)。 我基本上想刷新index.html
並使用新的更新值( $option1 = 20; $option2 = 20;
)
您可以按照@Hackerman的建議使用ajax,這很可能是我會使用的方法。
或者,您可以將重定向添加到engine.php頁面的末尾,然后將用戶送回索引頁面。
$newURL = "index.php?values=$newValues";
header('Location: '.$newURL);
要采用這種方法,索引頁面將需要在加載時處理values參數。
如果您不在乎URL是什么,則可以在engine.php中 require
index.html :
<?php
$option1 = 5;
$option2 = 10;
$final = array($option1, $option2);
if($_GET["selectedOption"] == 'Option1')
{
$option1 = 20;
$option2 = 20;
}
require('index.html')
?>
在index.html中有一些PHP的東西:
<script>
function refreshpage(e)
{
var e = document.getElementById("sr");
var snk = e.options[e.selectedIndex].value;
window.location.href = "engine.php?selectedOption=" + snk;
}
</script>
<?php if ( isset($final) { print_r($final); } ?>
<h4>Select your option</h4>
<form action="" id="optionform" onsubmit="return false;">
<select class="item_options" id="sr" name='sr' onchange="refreshpage(this);">
<option value="None">Select option</option>
<option value="Option1">Option 1</option>
<option value="Option1">Option 2</option>
<option value="Option1">Option 3</option>
</select>
</form>
您可以在任何地方使用<?php ?>
標記,只需記住這部分將在服務器上處理,並且僅將HTML和JavaScript發送到瀏覽器。
您可以使用ajax來回發送數據。 使用jquery ,您可以執行以下操作:
var final;
$.ajax({
url: 'engine.php',
data: { selectedOption: $('#optionform').find(":selected").text() },
dataType: 'json',
success: function(data) {
final = data;
}
});
然后在engine.php
, echo json_encode($final);
這只能使用AJAX來完成。 將AJAX發送到somepage.php,在其中以$ final返回json。 之后做點什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.