-1
我想通過一個php數組到ajax函數,因爲我需要ajax函數來填充一些動態創建的表。所以爲了做到這一點,我想我必須傳遞我想要傳遞給數組的值,並且一次傳遞它們,這樣我的ajax函數就可以聲明一次,以避免上次動態表的問題只在最後填充(儘管我不太確定這是爲什麼)。還有如何$ _GET我將發送的數組參數,但到目前爲止結果是相反的,因爲它是第一個填充的動態表。所以這讓我相信只有第一個數組值被我的ajax發送。我的繼承人代碼:傳遞php數組作爲ajax函數的鏈接參數
<script>
function cat_product(val1){
if(window.XMLHttpRequest){
xhttp = new XMLHttpRequest();
}else{
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.onreadystatechange = function(){
if(xhttp.readyState == 4 && xhttp.status == 200){
window.alert(val1.length);//this proves to me that the ajax works
document.getElementById("cat_products").innerHTML = xhttp.responseText;
}
};
xhttp.open("POST","ajax/cat_product.php?id="+val1,true);
xhttp.send();
}
</script>
<?php
$store_key = $_SESSION['store_key'];
$query = "SELECT category_key FROM product_category WHERE store_key = '{$store_key}' ORDER BY category_name ASC";
$category_set = mysqli_query($connect,$query);//for loop
confirm_query($connect,$category_set);
$number = mysqli_num_rows($category_set);
$_SESSION['sesssion_category'] = array();
$_SESSION['sesssion_productCategory'] = array();
$_SESSION['value'] = array();
for($i=0;$i<$number;$i++){
$sessionCategory = mysqli_fetch_array($category_set);
$_SESSION['sesssion_category'][] = $sessionCategory['category_key'];
}
foreach ($_SESSION['sesssion_category'] as $value) {
$_SESSION['value'][] = $value; // this is the array where i store the values i want to pass
/* this where i create another array who's key are named after each values
from $_SESSION['sesssion_category'] and allocate items that matches each key from the database */
if($_SESSION['store_key'] == $_SESSION['user_id']){
$query = "SELECT DISTINCT product_key FROM products WHERE store_key = '{$store_key}' AND category_key = '{$value}' ORDER BY branch_code,product_name ASC";
$product_set = mysqli_query($connect,$query);
confirm_query($connect,$product_set);
while($product = mysqli_fetch_array($product_set)){
$_SESSION['sesssion_productCategory'][$value][] = $product['product_key'];
}
}else{
$query = "SELECT DISTINCT product_key FROM products WHERE store_key = '{$store_key}' AND branch_code = '{$_SESSION['branch_code']}' AND category_key = '{$value}' ORDER BY branch_code,product_name ASC";
$product_set = mysqli_query($connect,$query);
confirm_query($connect,$product_set);
while($product = mysqli_fetch_array($product_set)){
$_SESSION['sesssion_productCategory'][$value][] = $product['product_key'];
}
}
?>
<ol id="chaps">
<li><button class="button button-3d button-leaf" ><?php echo ucfirst(get_category($value));?></button>
<table id="datatable1" class="table table-striped table-bordered assignments hide" cellspacing="0" width="100%">
<caption>Product Details</caption>
<thead>
<tr>
<th>#</th>
<th>Product Name</th>
<th>Total Pieces</th>
<?php
if($_SESSION['store_key'] == $_SESSION['user_id']){
echo "<th>Action</th>";
}else{
echo "";
}
?>
</tr>
</thead>
<tfoot>
<tr>
<th>#</th>
<th>Product Name</th>
<th>Total Pieces</th>
<?php
if($_SESSION['store_key'] == $_SESSION['user_id']){
echo "<th>Action</th>";
}else{
echo "";
}
?>
</tr>
</tfoot>
<tbody id="cat_products">
</tbody>
</table>
</li>
</ol>
<?php
}
?>
</div>
</div>
</div>
<!--<script>
var x = <?php echo '["' . implode('", "', $_SESSION['value']) . '"]' ?>;
window.onload = cat_product.apply(this,x);
</script>-->
<script>
var x = <?php echo json_encode($_SESSION['value']) ?>;
window.onload = cat_product.apply(this,x);
</script>
我試過(<?php echo '["' . implode('", "', $_SESSION['value']) . '"]'
>;`?),但它像它的不可靠。
那麼AJAX網頁,我處理我的AJAX cat_product.php
$value = $_GET['id'];//$value = explode(",", $_GET["id"]);
foreach($_SESSION['value'] as $sessionValue){
if($sessionValue == $value){
//create an array of $_SESSION['sesssion_productCategory'] category keys
$ary = array_keys($_SESSION['sesssion_productCategory']);
foreach($ary as $cat_key){
//Count the created array inorder not to exceed number of products
for($j=0;$j<count($ary);$j++){
//query for displaying products
if($sessionValue == $cat_key){
$value2 = $sessionValue;
foreach($_SESSION['sesssion_productCategory'][$value2] as $key){
?>
<tr>
</tr>
<?php
}
}
}
}
}
}
?>
你可以將你的php數組作爲json的