2 回答
TA贡献1946条经验 获得超3个赞
用逗号分隔变量。在 jQuery.ajax 中,执行如下操作:
jQuery.ajax({
url: "handler.php",
data: "appetizer=" + $("#appetizer").val(),
"entree=" + $("#entree").val(),
"dessert=" + $("#dessert").val(),
type: "POST",
success: function(data) {
$("#form_content").html(data);
},
error: function() {}
});
TA贡献1853条经验 获得超6个赞
您在此代码段中有很多问题,您应该首先检查 PHP 向您显示的错误并尝试先解决它们。
PHP 文件 (handler.php)
opinion()
功能未定义。runForm()
不是一个函数,它是一个类的名称,如果你想调用handle_food_form()
函数,那么你可以把它变成一个静态函数并像这样调用它runForm::handle_food_form();
你的 PHP 文件的最终版本应该是这样的
<?php
class RunForm {
public static function opinion($appetizer, $entree, $dessert)
{
// do your logic here and return true or false
return true;
}
public static function handle_food_form() {
if (!isset($_POST["appetizer"])) $_POST["appetizer"] = null;
if (!isset($_POST["appeentreetizer"])) $_POST["entree"] = null;
if (!isset($_POST["dessert"])) $_POST["dessert"] = null;
if(SELF::opinion($_POST["appetizer"], $_POST["entree"], $_POST["dessert"])) {
$htmlMsg = "<p class='success'>Thank you for your opinion.</p>";
/*
$con is a MySQLI object
$con->query("insert into table ........");
$new_post_id = $con->insert_id;
*/
return array('post_id' => $new_post_id, 'htmlMsg' => $htmlMsg );
} else {
return array('post_id' => null , 'htmlMsg' => "");
}
}
}
echo RunForm::handle_food_form()['htmlMsg'];
客户端
您应该使用encodeURIComponent()对 URL 的参数进行编码以防止这样的事情dessert=cheesecake&pancake破坏 URL,或者将参数的对象作为数据传递给ajax函数,jquery 将在内部为您进行编码
jQuery.ajax({
url: "handler.php",
data: {
appetizer: $("#appetizer").val(),
entree: $("#entree").val(),
dessert: $("#dessert").val()
},
type: "POST",
success: function(data) {
$("#form_content").html(data);
},
error: function() {}
});
- 2 回答
- 0 关注
- 182 浏览
添加回答
举报