Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jquery AJAX将javascript数组传递给php_Javascript_Php_Jquery_Arrays_Ajax - Fatal编程技术网

通过jquery AJAX将javascript数组传递给php

通过jquery AJAX将javascript数组传递给php,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我在将javascript数组传递到php文件时遇到问题。我知道JS数组具有正确的用户输入数据,因为我已经通过使用toString()并在我的网页上打印数组来测试了这一点。我的计划是使用AJAX将JS数组发送到我的php脚本中,但我对使用AJAX还不熟悉,所以很有可能我做错了什么。我已经浏览了很多有同样问题的人的不同帖子,但我尝试过的所有方法到目前为止都没有奏效。现在我只知道JS在数组中有数据,但是当我试图通过AJAX将其传递到php文件时,php脚本没有收到它。我之所以知道这一点,是因为我不断

我在将javascript数组传递到php文件时遇到问题。我知道JS数组具有正确的用户输入数据,因为我已经通过使用toString()并在我的网页上打印数组来测试了这一点。我的计划是使用AJAX将JS数组发送到我的php脚本中,但我对使用AJAX还不熟悉,所以很有可能我做错了什么。我已经浏览了很多有同样问题的人的不同帖子,但我尝试过的所有方法到目前为止都没有奏效。现在我只知道JS在数组中有数据,但是当我试图通过AJAX将其传递到php文件时,php脚本没有收到它。我之所以知道这一点,是因为我不断遇到未定义的变量错误。老实说,我不确定问题是在于如何将数组传递给php脚本,还是在于如何请求数组值并将数组值分配给php端的变量。目前我的代码如下:

我的Javascript:

function createAsset(str, str, str, str, str, str, str, str, str)
    {
        var aID = assetID.value;
        var aName = assetName.value;
        var pPrice = purchasedPrice.value;
        var pDate = purchasedDate.value;
        var supp = supplier.value;
        var cValue = currentValue.value;
        var aOwner = actualOwner.value;
        var wEdate = warrantyExpiryDate.value;
        var dDate = destroyedDate.value;

        //document.write(aID);
        //var dataObject = new Array()
        //dataObject[0] = aID;
        //dataObject[1] = aName;
        //dataObject[2] = pPrice;
        //dataObject[3] = pDate;
        //dataObject[4] = supp;
        //dataObject[5] = cValue; 
        //dataObject[6] = aOwner;
        //dataObject[7] = wEdate;
        //dataObject[8] = dDate;
        //dataObject.toString();
        //document.getElementById("demo").innerHTML = dataObject;

        var dataObject = { assitID: aID,
                           assitName: aName,
                           purchasedPrice: pPrice,
                           purchasedDate: pDate,
                           supplier: supp,
                           currentValue:  cValue, 
                           actualOwner: aOwner,
                           warrantyExpiryDate: wEdate,
                           destroyedDate: dDate };  

         $.ajax
         ({
            type: "POST",
            url: "create_asset_v1.0.php",
            data: dataObject, 
            cache: false,
            success: function()
            {
                alert("OK");
                location.reload(true);
                //window.location = 'create_asset_v1.0.php';
            }
        }); 
    }
我的PHP:

<?php
// Get Create form values and assign them to local variables.
$assetID = $_POST['aID'];
$assetName = $_POST['aName'];
$purchasedPrice = $_POST['pPrice'];
$purchasedDate = $_POST['pDate'];
$supplier = $_POST['supp'];
$currentValue = $_POST['cValue'];
$actualOwner = $_POST['aOwner'];
$warrantyExpiryDate = $_POST['wEdate'];
$destroyedDate = $_POST['dDate'];

// Connect to the SQL server.
$server='PC028\ZIRCONASSETS';               //serverName\instanceName
$connectinfo=array("Database"=>"zirconAssetsDB");
$conn=sqlsrv_connect($server,$connectinfo);

if($conn)
{
    echo "Connection established.<br/><br/>";
}
else
{
    echo "Connection couldn't be established.<br/><br/>";
    die(print_r( sqlsrv_errors(), true));
} 

// Query the database to INSERT record.
$sql = "INSERT INTO dbo.inHouseAssets 
        (Asset_ID, Asset_Name, Perchased_Price, Date_Perchased, Supplier, Current_Value, Actual_Owner,Worranty_Expiry_Date, Destroyed_Date) 
        VALUES 
        (?, ?, ?, ?, ?, ?, ?, ?, ?)";

$params = array($assetID, $assetName, $purchasedPrice, $purchasedDate, $supplier, $currentValue, $actualOwner, $warrantyExpiryDate, $destroyedDate);

// Do not send query database if one or more field have no value.
if($assetID && $assetName && $purchasedPrice && $purchasedDate && $supplier && $currentValue && $actualOwner && $warrantyExpiryDate && $destroyedDate != '')
{
    $result = sqlsrv_query( $conn, $sql, $params);

    // Check if query was executed with no errors.
    if( $result === false ) 
    {
        // If errors occurred print out SQL console data.  
        if( ($errors = sqlsrv_errors() ) != null) 
        {
            foreach( $errors as $error ) 
            {
                echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br/>";
                echo "code: ".$error[ 'code']."<br/>";
                echo "message: ".$error[ 'message']."<br/>";
            }
        }
    }
    else
    {
        echo "Record Created!<br/>";
    }
}

// Close server connection
sqlsrv_close( $conn );
if($conn)
{
    echo "<br/>Connection still established.";
}
else
{
    echo "<br/>Connection closed.";
}?>

您读错了键

$assetID = $_POST['aID'];
必须是:

$assetID = $_POST['assitID'];

根据您发送的对象

您读错了键

$assetID = $_POST['aID'];
必须是:

$assetID = $_POST['assitID'];

根据您发送的对象

您读错了键

$assetID = $_POST['aID'];
必须是:

$assetID = $_POST['assitID'];

根据您发送的对象

您读错了键

$assetID = $_POST['aID'];
必须是:

$assetID = $_POST['assitID'];

根据您发送的对象

您需要匹配通过AJAX发送的密钥:

var dataObject = { assitID: aID,
                           assitName: aName,
                           purchasedPrice: pPrice,
                           purchasedDate: pDate,
                           supplier: supp,
                           currentValue:  cValue, 
                           actualOwner: aOwner,
                           warrantyExpiryDate: wEdate,
                           destroyedDate: dDate };
使用POST数组键:

$assetID = $_POST['aID'];
$assetName = $_POST['aName'];
$purchasedPrice = $_POST['pPrice'];
$purchasedDate = $_POST['pDate'];
$supplier = $_POST['supp'];
$currentValue = $_POST['cValue'];
$actualOwner = $_POST['aOwner'];
$warrantyExpiryDate = $_POST['wEdate'];
$destroyedDate = $_POST['dDate'];
您的代码应该如下所示:

$assetID = $_POST['assitID'];
$assetName = $_POST['assitName'];
$purchasedPrice = $_POST['purchasedPrice'];
...

您需要匹配通过AJAX发送的密钥:

var dataObject = { assitID: aID,
                           assitName: aName,
                           purchasedPrice: pPrice,
                           purchasedDate: pDate,
                           supplier: supp,
                           currentValue:  cValue, 
                           actualOwner: aOwner,
                           warrantyExpiryDate: wEdate,
                           destroyedDate: dDate };
使用POST数组键:

$assetID = $_POST['aID'];
$assetName = $_POST['aName'];
$purchasedPrice = $_POST['pPrice'];
$purchasedDate = $_POST['pDate'];
$supplier = $_POST['supp'];
$currentValue = $_POST['cValue'];
$actualOwner = $_POST['aOwner'];
$warrantyExpiryDate = $_POST['wEdate'];
$destroyedDate = $_POST['dDate'];
您的代码应该如下所示:

$assetID = $_POST['assitID'];
$assetName = $_POST['assitName'];
$purchasedPrice = $_POST['purchasedPrice'];
...

您需要匹配通过AJAX发送的密钥:

var dataObject = { assitID: aID,
                           assitName: aName,
                           purchasedPrice: pPrice,
                           purchasedDate: pDate,
                           supplier: supp,
                           currentValue:  cValue, 
                           actualOwner: aOwner,
                           warrantyExpiryDate: wEdate,
                           destroyedDate: dDate };
使用POST数组键:

$assetID = $_POST['aID'];
$assetName = $_POST['aName'];
$purchasedPrice = $_POST['pPrice'];
$purchasedDate = $_POST['pDate'];
$supplier = $_POST['supp'];
$currentValue = $_POST['cValue'];
$actualOwner = $_POST['aOwner'];
$warrantyExpiryDate = $_POST['wEdate'];
$destroyedDate = $_POST['dDate'];
您的代码应该如下所示:

$assetID = $_POST['assitID'];
$assetName = $_POST['assitName'];
$purchasedPrice = $_POST['purchasedPrice'];
...

您需要匹配通过AJAX发送的密钥:

var dataObject = { assitID: aID,
                           assitName: aName,
                           purchasedPrice: pPrice,
                           purchasedDate: pDate,
                           supplier: supp,
                           currentValue:  cValue, 
                           actualOwner: aOwner,
                           warrantyExpiryDate: wEdate,
                           destroyedDate: dDate };
使用POST数组键:

$assetID = $_POST['aID'];
$assetName = $_POST['aName'];
$purchasedPrice = $_POST['pPrice'];
$purchasedDate = $_POST['pDate'];
$supplier = $_POST['supp'];
$currentValue = $_POST['cValue'];
$actualOwner = $_POST['aOwner'];
$warrantyExpiryDate = $_POST['wEdate'];
$destroyedDate = $_POST['dDate'];
您的代码应该如下所示:

$assetID = $_POST['assitID'];
$assetName = $_POST['assitName'];
$purchasedPrice = $_POST['purchasedPrice'];
...


您使用的数组键是错误的。为什么您在这里多次启动具有相同属性的函数
createAsset(str,str,str,str,str,str,str)
…?我假设传入函数的每个sting都必须声明为函数的参数。您在php端使用了错误的键,您必须在php端使用json对象的键部分来获取post值($\u post['assitID'],$\u post['assitName']…)数组键使用的是错误的。为什么要在这里多次使用相同属性启动函数
createAsset(str,str,str,str,str,str,str,str)
…???我假设我传递到函数中的每个sting都必须声明为函数的参数。您在php端使用了错误的键,您必须在php端使用json对象的键部分来获取post值($\u post['assitID'],$\u post['assitName']…)您使用的数组键是错误的。为什么您在这里多次启动具有相同属性的函数
createAsset(str,str,str,str,str,str,str)
…?我假设传入函数的每个sting都必须声明为函数的参数。您在php端使用了错误的键,您必须在php端使用json对象的键部分来获取post值($\u post['assitID'],$\u post['assitName']…)数组键使用的是错误的。为什么要在这里多次使用相同属性启动函数
createAsset(str,str,str,str,str,str,str,str)
…???我假设我传递到函数中的每个sting都必须声明为函数的参数。您在php端使用了错误的键,您必须在php端使用json对象的键部分来获取post值($\u post['assitID'],$\u post['assitName']),非常感谢您,现在可以工作了,现在你说我可以看到我肯定是弄错了。非常感谢Mihai,它现在起作用了,现在你说我可以看到我肯定是弄错了。非常感谢Mihai,它现在起作用了,现在你说我可以看到我肯定是弄错了。非常感谢你Mihai,它现在起作用了,现在你说我可以看到我肯定是弄错了。