我在页面上有这个表单和脚本:
<section class="hide-section" id="produto_1">
<form class="form-validate" id="feedback_form">
<div class="campo">
<fieldset>
<h1>
<legend>
<center>
<strong>Produtos de Higiene</strong>
</center>
</h1><br>
</div>
<fieldset class="grupo">
<div class="campo">
<strong><label for="Nome do Produto">Nome do Produto</label></strong>
<input type="text" id="DescricaoProd" name="DescricaoProd" required="" style="width:350px">
</div>
<div class="campo">
<strong><label for="Unidade">Unidade</label></strong>
<input type="text" id="DescricaoUnid" name="DescricaoUnid" style="width:160px" required="" size="120">
</div>
</fieldset>
<button class="btn btn-success btn_contact" type="button">Registo</button>
</form>
</section>
<script type="text/javascript">
$(".btn_contact").click(function () {
$.ajax({
type: "POST",
url: "./inserir",
data: $("#feedback_form").serialize(), // serializes the form's elements.
success: function (data)
{
if ($.trim(data) == 'true') {
$("#feedback_form").find('input').val(''); //clear text
dataType: "json",
$(".success_messages").removeClass('hide'); // success message
} else {
$(".error_message").removeClass('hide'); // error message
}
}
});
});
</script>
在插入页面上我有这个PHP代码:
$name = isset($_POST["DescricaoProd"]) ? $_POST["DescricaoProd"] : '';
$unid = isset($_POST["DescricaoUnid"]) ? $_POST["DescricaoUnid"] : '';
if (!empty($name) && !empty($unid)) {
echo json_encode("true");
} else {
echo json_encode("false");
}
$conn = new mysqli ("localhost", "USUARIO", "SENHA", "nome_DB");
$sql = "INSERT INTO ProdHigieneteste (DescricaoProd,DescricaoUnid)
VALUES ('$name','$unid')";
if ($conn->query($sql)) { // check for === TRUE is not necessary
// either put the second query in here, or just enjoy the success
} else {
// get the error, throw a message...
}
$sql1 = "INSERT INTO StockHigieneteste (DescricaoProd,DescricaoUnid)
VALUES ('$name','$unid')";
$query = mysqli_query($conn, "SELECT * FROM StockHigieneteste");
if ($conn->query($sql1) === TRUE) {
//Count total number of rows
$rowCount = $query->num_rows;
} else {
// get the error, throw a message...
}
$conn->close();
代码工作正常,就像将其插入数据库表一样,但现在它正在检查清理输入的部分并且尚未插入数据库表,但它也没有在控制台中给出任何错误。任何人都可以帮助确定问题吗?
当我把代码的开头放在这一部分时:
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
出现错误信息,因此不再更改为插入,应该为真。
如果你这样做:
var_dump ($name);
var_dump ($unid);
返回:
string(0)“”string(0)“”“false”
变量没有收到价值
答案 0 :(得分:1)
请使用wordpress标准AJAX
add_action( 'init', 'my_script_enqueuer' );
function my_script_enqueuer() {
wp_localize_script( 'my_voter_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'my_voter_script' );
}
add_action("wp_ajax_custom_function", "my_custom_function");
add_action("wp_ajax_nopriv_custom_function", "my_custom_function");
function my_custom_function()
{
global $wpdb;
$name = isset($_POST["DescricaoProd"]) ? $_POST["DescricaoProd"] : '';
$unid = isset($_POST["DescricaoUnid"]) ? $_POST["DescricaoUnid"] : '';
if (!empty($name) && !empty($unid)) {
echo json_encode("true");
} else {
echo json_encode("false");
}
$mydb = new wpdb('USUARIO','SENHA','nome_DB','localhost');
$rows = $mydb->get_results("select Name from my_table");
$mydb->insert(
'ProdHigieneteste',
array(
'DescricaoProd' => $name,
'DescricaoUnid' => $unid
),
array(
'%s',
'%d'
)
);
$mydb->insert(
'StockHigieneteste',
array(
'DescricaoProd' => $name,
'DescricaoUnid' => $unid
),
array(
'%s',
'%d'
)
);
/* If you want to use regular wordpress db then use $wpdb */
$results = $wpdb->get_results("SELECT * FROM StockHigieneteste");
wp_die();
}
在带有“url : myAjax.ajaxurl,
”
使用“wp_localize_script
”时,请使用您已包含的自定义js slug