如何通过php将这些JQuery变量传递给Mysql?
问题描述:
我做了一个简单的(非常规)表单,它将每个答案存储为一个变量(我这样做是因为某些问题不会被回答,因为出现的问题取决于您在上一个问题上回答的问题)。如何通过php将这些JQuery变量传递给Mysql?
我想将它发送给一个php文件,该文件将搜索Mysql数据库中是否存在匹配项,并以xml格式返回。
下面是变量:
- 正确答案为:如果填写,必须等于什么是在MySQL
- Checkbox1/2/3/3:如果一个或多个将检索数据这些被检查。例如,如果选中“咖啡”和“果汁”,则将返回咖啡或果汁设为真的行。
- Dropdown1/2:二是从/到指定范围的
这里的变量是我的代码:) http://jsfiddle.net/pufamuf/S6smg/1/
HTML:
<div id="que1">Question One:
<input id="inp1" type="text">
<input type="button" value="Next Question" id="but1"></div>
<div id="que2" class="hiddendiv">Question Two:<br>
<input type="checkbox" id="checkbox1" value="coffee">Coffee<br>
<input type="checkbox" id="checkbox2" value="tea">Tea<br>
<input type="checkbox" id="checkbox3" value="latte">Latte<br>
<input type="checkbox" id="checkbox4" value="juice">Juice<br>
<input type="button" value="Next Question" id="but2"></div>
<div id="que3" class="hiddendiv">Question Three:
From:
<select id="dropdown1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
To:
<select id="dropdown2">
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="button" value="Finish" id="but3"></div>
<br><br><br>
<b>Variables</b><br>
Answer1:<div id="answer1"></div>
Checkbox1:<div id="answer2a"></div>
Checkbox2:<div id="answer2b"></div>
Checkbox3:<div id="answer2c"></div>
Checkbox4:<div id="answer2d"></div>
Dropdown1:<div id="answer3a"></div>
Dropdown2:<div id="answer3b"></div>
的Jquery:
$("input[type='button']").click(function() {
var question1 = '';
var question2a = '';
var question2b = '';
var question2c = '';
var question2d = '';
var question3a = '';
var question3b = '';
switch (this.id) {
case 'but1':
question1 = $("#inp1").val();
$("#answer1").html(question1);
$('#que1').addClass('hiddendiv');
$('#que2').removeClass('hiddendiv');
break;
case 'but2':
if($('#checkbox1').is(':checked')){
question2a = '1';
}
if($('#checkbox2').is(':checked')){
question2b = '1';
}
if($('#checkbox3').is(':checked')){
question2c = '1';
}
if($('#checkbox4').is(':checked')){
question2d = '1';
}
$("#answer2a").html(question2a);
$("#answer2b").html(question2b);
$("#answer2c").html(question2c);
$("#answer2d").html(question2d);
$('#que2').addClass('hiddendiv');
$('#que3').removeClass('hiddendiv');
break;
case 'but3':
question3a = $("#dropdown1").val();
question3b = $("#dropdown2").val();
$('#que3').addClass('hiddendiv');
$("#answer3a").html(question3a);
$("#answer3b").html(question3b);
break;
}
});
非常感谢大家:)))!
这里是PHP文件看起来像现在我的旧的HTML表单:
<?php
require("db_access.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$name=$_POST['name'];
$address=$_POST['address'];
$type=$_POST['type'];
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$inputs = array('name', 'address', 'type');
$where = array();
foreach($inputs as $input)
{
if(!empty($_POST[$input])) {
$where[] = "{$input} = '" . mysql_real_escape_string($_POST[$input]) . "'";
}
}
if ($where) {
$query = 'SELECT * FROM markers WHERE ' . implode(' AND ', $where);
} else {
user_error("No rows returned by:<br />\n$query");
}
$result = mysql_query($query);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'type="' . parseToXML($row['type']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
答
你需要做一个HTTP请求到PHP页面,并处理在服务器端表单数据。根据表单类型,它将在$_GET
或$_POST
之间。
如果你想使用AJAX,你可以使用form plugin或手动收集数据并使用$.get
提交。
- 为每个表单元素分配一个
name
值。 - 使用
name
从表格中提取数据,例如,如果该字段的名称为foo
,并且您使用POST请求数据,则将使用$_POST['foo']
。
嗨,尼克,我发布了一个PHP源代码,我现在使用一个简单的3问题表单。但是,我不知道如何将这些变量移入该文件 – pufAmuf
啊,所以我甚至不需要使用变量呢?然而,我只是意识到,我有一个问题,四个按钮决定下一个问题将是什么 - 这就是为什么我决定使用变量。我能以某种方式将某个按钮点击转移到名称值吗? – pufAmuf
没有冒犯,但你应该考虑写一本关于PHP/JavaScript的书。这是非常基本的东西。你可以在jQuery中使用'$ .bind'绑定click事件。 –