【问题标题】:Passing dropdown value to PHP variable (without submit using jQuery)将下拉值传递给 PHP 变量(不使用 jQuery 提交)
【发布时间】:2012-10-13 05:49:29
【问题描述】:

我正在构建一个披萨订购表单,该表单根据用户选择计算表单字段并返回总数。 第一个输入将是货币下拉菜单,一旦用户选择货币,它应该将值传递给 PHP 变量 $currency(以便计算汇率) 当然不需要提交表格。

我看过很多类似的代码,但很困惑,我知道我应该使用 JavaScript / Ajax,但我的知识很薄弱。

您能否粘贴一个将 $currency 值传递给 PHP 的简单代码?

<html>
<head>
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($){
    $("#currency").change(function(){
        var selected_value = $(this).val();
        /*AJAX CODE HERE TO PASS VALUE OF DROP DOWN TO PHP*/
        $.post("CurrencyCalculator.php", $("#currency").serialize()); //this is the problematic part: it needs to pass the $currency variable
    })

})
</script>
</head>
<body>
Select any one: 
<select id="currency" name="currency" onchange="selectDropdown()">
<option value="EUR" >Euro</option>
<option value="USD" >US Dollar</option>
<option value="GBP" >British Pound</option>
</select>


</body>
</html>

【问题讨论】:

  • 这个能赚多少钱?你检查了吗php.net/manual/en/function.money-format.php
  • 您阅读过 jQuery 文档吗? api.jquery.com/jQuery.post 将是一个不错的起点。
  • 我知道答案在这里api.jquery.com/jQuery.post,但我仍然无法弄清楚:)
  • 你在哪一部分遇到了问题?
  • @NullPointer 你说对了一半 :) 它不是为了披萨 :P (但实际上,例如在匈牙利,你用匈牙利福林支付,而你也应该接受欧元,因为它在欧盟。

标签: php javascript jquery html ajax


【解决方案1】:

在 HTML 返回到浏览器之前,Php 在服务器上运行。由于这个原因,您不能将值从 html 表单传递到 php 变量。

但是,您可以将表单提交到 php 页面进行处理。

<form action="myPhpPage.php">

然后在 myPhpPage.php 中,您可以使用 $_GET['variableName'] 来检索值

【讨论】:

  • 嗯,但这就是重点,我不想在表单中添加额外的提交按钮。
  • 我已经尝试过你的方法,问题是它会转到“myPhpPage.php?currency=USD”而不是重新加载相同的表单页面以继续 - 所以目标是一旦选择,页面不是提交或重新加载这需要 jquery / java ajax 代码:(
【解决方案2】:

因为它是一个选择货币的下拉菜单,所以给菜单一个onchange 属性并将信息发送到您的 PHP 文件以进行处理。

【讨论】:

  • 选择任何一个:
  • 我不知道 jQuery 或您希望 ajax 代码的外观,但是使用下拉菜单时提交此数据的一种非常(注意:非常)基本的方式是:&lt;?php $currency = $_REQUEST['currency'] echo $currency ?&gt; &lt;html&gt; &lt;form name="mainform" action="" method="post"&gt; &lt;select name="currency" onchange="this.form.submit()"&gt; &lt;option value="eur"&gt;Euro&lt;/option&gt; &lt;option value="usd"&gt;USD&lt;/option&gt; &lt;/select&gt; &lt;/form&gt; &lt;/html&gt;
  • 嗯,不完全是,因为这将发布所有表单。下拉功能是在表单中更改价格值(这是在单独的 php 文件中完成的,所以我需要的只是将 $currency 的值绕过到包含的 php 文件中
  • @user1741397 您可以将选择对象放在单独的表单中,并将从它发送的值存储在 PHP 会话变量中,以便在外部 PHP 文件中使用它。只需制作一个包含&lt;select&gt; 的表单,然后再制作一个包含其余部分的表单,显然有两个不同的名称。
  • 这听起来更合乎逻辑,我如何进行会话? :-)
【解决方案3】:

尝试查看 $_POST 和 $_GET

<?php

if(($_POST['submit']))
{

    // do your stuff
}

?>

<form action="something" method="post">
<input type="submit" name="submit" value="Vote!">
</form>

当这个表单被按下时,phpp代码将被运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多