我希望这能成为sesne,请光临我。所以我有一个包含变量的PHP页面,我有一些径向框,点击它们,它会计算你点击的项目的价格。我这样做是通过激活我传递了一些变量的js函数来实现的。像这样。
PHP:
$result = mssql_query("SELECT * FROM Segments ORDER BY 'Squares'");
if (!$result) {
echo 'query failed';
exit;
}
while ($row = mssql_fetch_array($result)) { ?>
<span><?php echo $row["Squares"]; ?></span>
<input name="squares" type="radio"
onclick="ajaxCases('<?php echo $row["Squares"]; ?>', '<?php echo $row["StartCaseID"]; ?>', '<?php echo $row["StartMatrixPrice"]; ?>')" value="<?php echo $row["Squares"]; ?>"
<?php if ($row["Squares"] == "1") { ?> checked="checked" <?php }else{ ?> checked="" <?php } ?>/>
<?php } ?>
正如你可以看到onclick它转到一个名为ajaxcases的函数,这个函数看起来像这样。
function ajaxCases(squares,start,price){
$('#step1').html('<p style="margin:100px 0px 0px 100px"><img src="images/ajax-loader-bigindic.gif" width="32" height="32" alt="" /></p>');
$('#step1').load("ajax-styles.php?squares="+squares);
prevId1 = "";
document.varsForm.caseid.value=start;
$('#step1price').html('<span style="margin:0px 0px 0px 30px"><img src="images/ajax-loader-price.gif" width="24" height="24" alt="" /></span>');
$('#step1price').load("ajax-step1-price.php?Squares="+Squares);
return true;
}
然后进入名为ajax-step1-price.php的php页面,我尝试回忆变量Squares。但它不起作用,我认为这是一个GET然而返回undefined。
总结:我想知道如何将变量从PHP传递到JS然后再传递给PHP,或者如果有人可以告诉我哪里出错我会非常感激。
我正在使用MS SQL DB
答案 0 :(得分:1)
检查您的功能签名。
你有:
function ajaxCases(squares,start,price){
应该是:
// |-------- capital S
function ajaxCases(Squares,start,price) {
或者更好的是,改变这个:
$('#step1price').load("ajax-step1-price.php?Squares="+Squares);
To This:
// v--- lowercase s
$('#step1price').load("ajax-step1-price.php?Squares="+squares);
JavaScript变量为case-sensitive。
答案 1 :(得分:0)
Squares确实是一个GET变量,您可以像这样访问它:$_GET['Squares']
:
如果$_GET['Squares']
返回undefined
,请验证您是否正在调用正确的网址。
答案 2 :(得分:0)
尝试调试它。
首先看一下PHP生成的HTML。
如果所有值都正确,请尝试在浏览器控制台中运行为<input name="squares" onclick="..." />
生成的javascript。
如果来自ajaxCases()
的呼叫转到服务器,请查看URL - 是否正确形成。
如果是 - 请检查服务器脚本返回的内容以及输入值的作用。
希望有所帮助。