wenn else-Anweisung in AJAX-Erfolg
Dies ist, wie ich versucht bin, um zu überprüfen, json-Daten. Wenn die Daten, die Einsätze richtig will ich das erwähnt jquery im "success" - code. Aber wenn es nicht eingesteckt ist, soll ich dann sonst-code ausgeführt. Aber die if -, else-Bedingungen nicht ordnungsgemäß funktioniert.Ich bin auch php-code und ajax-code, die ich ausprobiert habe. Mache ich es richtig?
AJAX
$( "#frm_add" ).on('submit',(function(e) {
e.preventDefault();
var img= new FormData(this);
datas = $("#frm_add").serializeArray();
$.each(datas,function(key,input){
img.append(input.name,input.value);
});
$.ajax({
url: "response_categories.php", //Url to which the request is send
type: "POST", //Type of request to be send, called as method
//data:new FormData(this),
data:img,
//data: {img:img,datas:datas}, //Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, //The content type used when sending data to the server.
cache: false, //To unable request pages to be cached
processData: false, //To send DOMDocument or non processed data file it is set to false
success: function (data) //A function to be called if request succeeds
{
if(data == true)
{
$('#add_model').modal('hide');
$("#categories_grid").bootgrid('reload');
}
else
{
$("#nameerr").html("<p id='error' style='color:red'>"+data+"</p>");
}
}
});
}));
php
function insertCategories($params)
{
$fileName = $_FILES['cat_image']['name'];
$name = $params['cat_name'];
$type = $params['cat_type'];
$switch = $params['cat_switch'];
$chk=mysqli_query($this->conn,"select * from categories where cat_name='$name'");
if(mysqli_num_rows($chk)==0)
{
$sql = "INSERT INTO `categories` (cat_name,cat_image, cat_type, cat_switch) VALUES('$name','$fileName', '$type','$switch'); ";
echo $result = mysqli_query($this->conn, $sql) or die("error to insert Categories data");
if ($result) {
if (file_exists("images/" . $_FILES["cat_image"]["name"])) {
echo $fileName . " <span id='invalid'><b>already exists.</b></span> ";
} else {
$sourcePath = $_FILES['cat_image']['tmp_name']; //Storing source path of the file in a variable
$targetPath = "images/" .$fileName; //Target path where file is to be stored
move_uploaded_file($sourcePath, $targetPath); //Moving Uploaded file
}
}
echo json_encode($result);
}
}
Ist, dass Ihre PHP-code?
Sie haben 2
machen Sie eine Konsole.log(Daten) bevor Sie Ihre if-Anweisung zu prüfen, was Sie Wert sind, immer wieder,
Sie müssen überprüfen Sie den Unterschied zwischen lose Gleichheit (
wenn Sie
insertCategories
wird niemals aufgerufen, wenn das der Fall ist..Sie haben 2
echo
. Wenn der Versand json erwarten müssen json in ajax und senden nur eine echo
. Nie true
entwedermachen Sie eine Konsole.log(Daten) bevor Sie Ihre if-Anweisung zu prüfen, was Sie Wert sind, immer wieder,
Sie müssen überprüfen Sie den Unterschied zwischen lose Gleichheit (
==
) und strikte Gleichheit (===
). Ihre Logik ist im Moment "wenn was kommt wieder aus dem server auslösen, die Wahrheit ist Bedingung."wenn Sie
console.log(data)
was kommt zurück?InformationsquelleAutor tabia | 2017-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie den error-Befehl in deinem ajax-Aufruf ausführen, wenn der Befehl fehlschlägt oder gibt keine Daten in der Regel
InformationsquelleAutor Surreal
Ich glaube, Sie haben problem mit der response-Konvention: Manchmal rufen Sie
die()
Methode (PHP: 12 line), manchmal rufen Siejson_endcode()
(PHP: 25 Linie), manchmal echo mit einfacher string.In dieser Art von Aktionen, die Sie sollten:
Beispiel pseudocode:
PHP
Dann in
ajax.success()
Methode, seine wirklich einfach zu handhaben:InformationsquelleAutor Dariusz Majchrzak